Function at 0x100b4000
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1016fff8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x98
mov eax, dword [ebx + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xc]
push edi
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
lea edi, [esi + 0x2f0]
mov dword [ebp - 0x14], esi
push eax
mov dword [ebp - 0x20], edi
call fcn.1003a340
push eax
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.1003a670
mov edi, dword [eax + 4]
mov dword [ebp - 0x48], edi
test edi, edi
jne 0x100b407d
mov edi, dword [esi + 0x2f4]
mov dword [ebp - 0x48], edi
cmp edi, dword [esi + 0x2f4]
jne 0x100b4546
lea eax, [esi + 0x488]
push eax
lea ecx, [ebp - 0x44]
call fcn.1002ea80
mov dword [ebp - 4], 0
mov ecx, 1
mov eax, dword [esi + 0xc4]
cmp eax, ecx
cmovg ecx, eax
push ecx
push str.PS_SCALE_FACTOR
lea ecx, [ebp - 0x44]
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0xe
and eax, 1
push eax
push str.PS_FST
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x13
and eax, 3
push eax
push str.PS_WMS
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x15
and eax, 3
push eax
push str.PS_WMT
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
and eax, 0xf
push eax
push str.PS_FMT
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 8
and eax, 1
push eax
push str.PS_AEM
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0xf
and eax, 7
push eax
push str.PS_TFX
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x12
and eax, 1
push eax
push str.PS_TCC
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0xb
and eax, 7
push eax
push str.PS_ATST
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0xa
and eax, 1
push eax
push str.PS_FOG
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
shr eax, 4
and eax, 1
push eax
push str.PS_CLR1
lea ecx, [ebp - 0x44]
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 9
and eax, 1
push eax
push str.PS_FBA
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x1a
and eax, 1
push eax
push str.PS_FBMASK
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x17
and eax, 1
push eax
push str.PS_LTF
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 0xa
and eax, 1
push eax
push str.PS_TCOFFSETHACK
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 0xd
and eax, 1
push eax
push str.PS_POINT_SAMPLER
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x18
and eax, 1
push eax
push str.PS_SHUFFLE
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x19
and eax, 1
push eax
push str.PS_READ_BA
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 7
and eax, 7
push eax
push str.PS_CHANNEL_FETCH
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 0xc
and eax, 1
push eax
push str.PS_TALES_OF_ABYSS_HLE
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 0xb
and eax, 1
push eax
push str.PS_URBAN_CHAOS_HLE
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 4
and eax, 3
push eax
push str.PS_DFMT
call fcn.1002eb40
mov eax, dword [ebx + 8]
shr eax, 6
and eax, 3
lea ecx, [ebp - 0x44]
push eax
push str.PS_DEPTH_FMT
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 2
and eax, 3
push eax
push str.PS_PAL_FMT
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 0xe
and eax, 1
push eax
push str.PS_INVALID_TEX0
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 5
and eax, 1
push eax
push str.PS_HDR
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 6
and eax, 1
push eax
push str.PS_COLCLIP
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x1b
and eax, 3
push eax
push str.PS_BLEND_A
call fcn.1002eb40
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x44]
shr eax, 0x1d
and eax, 3
push eax
push str.PS_BLEND_B
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
and eax, 3
push eax
push str.PS_BLEND_C
call fcn.1002eb40
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0x44]
shr eax, 2
and eax, 3
push eax
push str.PS_BLEND_D
call fcn.1002eb40
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
push ecx
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 2
push eax
push 0x2711
call fcn.10057330
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x44]
call fcn.1002ec70
push eax
push str.ps_main
push 0
push str.tfx.fx
sub esp, 0xc
mov edi, dword [ebp - 0x5c]
mov edx, esp
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x48], edx
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
cmp edi, ecx
je 0x100b4453
sub ecx, edi
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x1000
jb 0x100b4411
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x100b490f
push eax
call fcn.100cd0b0
add esp, 4
test eax, eax
je 0x100b450b
mov ecx, dword [ebp - 0x1c]
lea edi, [eax + 0x23]
mov edx, dword [ebp - 0x48]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x100b442a
test ecx, ecx
je 0x100b4428
push ecx
call fcn.100cd0b0
mov ecx, dword [ebp - 0x1c]
add esp, 4
mov edx, dword [ebp - 0x48]
mov edi, eax
jmp 0x100b442a
xor edi, edi
push ecx
push dword [ebp - 0x5c]
mov dword [edx], edi
lea eax, [edi + ecx]
mov dword [edx + 4], edi
push edi
mov dword [edx + 8], eax
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x58]
add esp, 0xc
mov ecx, dword [ebp - 0x48]
sub eax, dword [ebp - 0x5c]
add eax, edi
mov edi, dword [ebp - 0x5c]
mov dword [ecx + 4], eax
mov ecx, esi
call fcn.1002ee80
mov eax, dword [ebx + 8]
lea ecx, [esi + 0x2f0]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.100b4fd0
mov esi, dword [ebp - 0x2c]
mov eax, dword [eax]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax]
cmp ecx, esi
je 0x100b44a8
test esi, esi
je 0x100b4499
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov dword [eax], esi
test ecx, ecx
je 0x100b44a5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
call fcn.1003a340
mov ecx, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.1003a670
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
test eax, eax
jne 0x100b44e4
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 1
test edi, edi
je 0x100b451e
mov ecx, dword [ebp - 0x54]
mov eax, edi
sub ecx, edi
cmp ecx, 0x1000
jb 0x100b4511
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100b4511
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edi
call fcn.100cd0a2
mov esi, dword [ebp - 0x2c]
add esp, 8
mov byte [ebp - 4], 0
test esi, esi
je 0x100b452c
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
call fcn.100304e0
lea ecx, [ebp - 0x44]
call fcn.10030540
mov esi, dword [ebp - 0x14]
mov edx, dword [ebx + 0x14]
movups xmm0, xmmword [esi + 0x400]
movups xmm1, xmmword [esi + 0x410]
movups xmm2, xmmword [esi + 0x420]
movups xmm3, xmmword [edx]
pcmpeqd xmm0, xmmword [edx + 0x20]
pcmpeqd xmm1, xmmword [edx + 0x30]
movups xmm4, xmmword [esi + 0x430]
pcmpeqd xmm2, xmmword [edx + 0x40]
movups xmm5, xmmword [esi + 0x440]
pcmpeqd xmm4, xmmword [edx + 0x50]
movups xmm6, xmmword [esi + 0x450]
pcmpeqd xmm5, xmmword [edx + 0x60]
movups xmm7, xmmword [esi + 0x470]
pcmpeqd xmm6, xmmword [edx + 0x70]
pcmpeqd xmm7, xmmword [edx + 0x90]
movaps xmmword [ebp - 0x60], xmm3
pcmpeqd xmm3, xmmword [esi + 0x3e0]
pand xmm3, xmm0
pand xmm3, xmm1
pand xmm3, xmm2
pand xmm3, xmm4
pand xmm3, xmm5
pand xmm3, xmm6
pand xmm3, xmm7
pmovmskb eax, xmm3
cmp eax, 0xffff
je 0x100b465e
movaps xmm0, xmmword [ebp - 0x60]
movups xmmword [esi + 0x3e0], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [esi + 0x3f0], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [esi + 0x400], xmm0
movups xmm0, xmmword [edx + 0x30]
movups xmmword [esi + 0x410], xmm0
movups xmm0, xmmword [edx + 0x40]
movups xmmword [esi + 0x420], xmm0
movups xmm0, xmmword [edx + 0x50]
movups xmmword [esi + 0x430], xmm0
movups xmm0, xmmword [edx + 0x60]
movups xmmword [esi + 0x440], xmm0
movups xmm0, xmmword [edx + 0x70]
push 0
movups xmmword [esi + 0x450], xmm0
movups xmm0, xmmword [edx + 0x90]
push 0
push edx
movups xmmword [esi + 0x470], xmm0
mov eax, dword [esi + 0xd8]
push 0
push 0
push dword [esi + 0x310]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc0]
xor esi, esi
mov dword [ebp - 0x18], esi
xor edi, edi
mov dword [ebp - 4], 3
mov dword [ebp - 0x24], edi
mov byte [ebp - 4], 4
mov ecx, dword [ebx + 8]
mov eax, ecx
and eax, 0x38000
cmp eax, 0x20000
je 0x100b4858
mov eax, ecx
and eax, 0xf
cmp al, 3
jae 0x100b46b2
mov eax, ecx
and eax, 0x180000
cmp eax, 0x180000
jae 0x100b46b2
and ecx, 0x600000
cmp ecx, 0x600000
jae 0x100b46b2
mov edi, dword [ebx + 0x18]
jmp 0x100b46bb
mov edi, dword [ebx + 0x18]
and edi, 0xfffffffb
mov dword [ebx + 0x18], edi
mov eax, dword [ebp - 0x14]
mov edx, edi
add eax, 0x314
and edx, 7
mov dword [ebp - 0x1c], eax
mov eax, edx
xor eax, 0x811c9dc5
mov dword [ebp - 0x20], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp - 0x1c]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.1006f3c0
mov eax, dword [eax + 4]
test eax, eax
jne 0x100b471e
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x14]
cmp eax, dword [ecx + 0x318]
je 0x100b4755
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100b4834
mov esi, eax
push esi
mov eax, dword [esi]
call dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], esi
test eax, eax
je 0x100b4831
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x100b482e
mov esi, dword [ecx + 0xc8]
mov edx, edi
test esi, esi
mov dword [ebp - 0x84], 0
mov eax, 0x55
mov dword [ebp - 0x88], 3
mov ecx, 0x14
mov dword [ebp - 0x68], 0xff7fffff
cmovne ecx, eax
mov dword [ebp - 0x64], 0x7f7fffff
xor eax, eax
mov dword [ebp - 0x80], esi
and dl, 4
mov dword [ebp - 0x7c], 1
xorps xmm0, xmm0
cmovne eax, ecx
movlpd qword [ebp - 0x78], xmm0
mov dword [ebp - 0x94], eax
lea ecx, [ebp - 0x18]
lea eax, [edi + edi]
movlpd qword [ebp - 0x70], xmm0
not eax
and edi, 0xfffffffe
and eax, 2
not edi
or eax, 1
and edi, 2
mov dword [ebp - 0x90], eax
or edi, 1
mov eax, dword [ebp - 0x14]
push ecx
mov dword [ebp - 0x8c], edi
lea ecx, [ebp - 0x94]
push ecx
mov eax, dword [eax + 0xd4]
push eax
mov edx, dword [eax]
call dword [edx + 0x5c]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x1c]
and eax, 7
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.100b4de0
mov esi, dword [ebp - 0x18]
mov edi, dword [eax]
mov ecx, dword [edi + 0xc]
cmp ecx, esi
je 0x100b4831
test esi, esi
je 0x100b4821
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [edi + 0xc]
mov dword [edi + 0xc], esi
test ecx, ecx
je 0x100b482e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
and eax, 0xf
cmp al, 3
jb 0x100b4856
mov edi, dword [ecx + 0x334]
test edi, edi
je 0x100b4856
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x24], edi
jmp 0x100b4858
xor edi, edi
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x19c], esi
jne 0x100b486b
cmp dword [ecx + 0x1a0], edi
je 0x100b4877
mov dword [ecx + 0x19c], esi
mov dword [ecx + 0x1a0], edi
mov eax, dword [ebp - 0x48]
mov edx, dword [ecx + 0x310]
mov dword [ebp - 0x20], edx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
cmp dword [ecx + 0x194], eax
je 0x100b48b3
mov dword [ecx + 0x194], eax
mov eax, dword [ecx + 0xd8]
push 0
push 0
push dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x198], edx
je 0x100b48d8
mov eax, dword [ecx + 0xd8]
mov dword [ecx + 0x198], edx
lea edx, [ebp - 0x20]
push edx
push 1
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x40]
mov esi, dword [ebp - 0x18]
mov byte [ebp - 4], 3
test edi, edi
je 0x100b48e9
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x100b48fa
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
call fcn.1001d420
int3