Function at 0x100421e0
Capabilities:
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x654
mov dword [ebp - 0x644], ecx
mov esi, dword [ebp + 0x10]
mov eax, dword [0x1038000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea eax, [esi + 0x18bc]
mov dword [ebp - 0x658], eax
xor edi, edi
mov ebx, dword [ebp - 0x658]
mov ecx, ebx
push 7
push edi
call fcn.1004a8c0
mov ecx, dword [ebp - 0x644]
mov byte [ecx + edi + 0x14], al
test al, al
je 0x1004222f
xor eax, eax
jmp 0x1004223f
mov ecx, ebx
push 0
push edi
call fcn.1004a8c0
mov ecx, dword [ebp - 0x644]
mov byte [ecx + edi + 0x10], al
mov eax, dword [esi + 0x1518]
mov ebx, dword [eax + edi*8 + 4]
test ebx, ebx
je 0x100422b4
mov ecx, ebx
xor eax, eax
push eax
push eax
call fcn.1008e490
mov eax, dword [eax]
mov esi, dword [eax]
push esi
call fcn.100a73d0
add esp, 4
xor ecx, ecx
cmp dword [eax], ecx
je 0x10042272
mov esi, dword [eax + 0x4c]
mov ecx, dword [ebp - 0x644]
mov dword [ecx + edi*4 + 0x18], esi
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x156c]
mov esi, dword [eax + edi*8 + 4]
cmp byte [ecx + edi + 0x10], 0
je 0x100422be
mov eax, dword [ebx + 0x80]
and eax, 0xfffffffc
cmp eax, 0x2700
jne 0x100422be
lea ecx, [ebx + 0x6c]
call fcn.1008d2f0
mov ecx, dword [ebp - 0x644]
mov byte [ecx + edi + 0x10], al
jmp 0x100422be
mov eax, dword [esi + 0x156c]
mov esi, dword [eax + edi*8 + 4]
test esi, esi
je 0x100422ed
cmp byte [ecx + edi + 0x14], 0
je 0x100422ed
mov eax, dword [esi + 0x80]
and eax, 0xfffffffc
cmp eax, 0x2700
jne 0x100422ed
add ebx, 0x6c
mov ecx, ebx
call fcn.1008d2f0
mov ecx, dword [ebp - 0x644]
mov byte [ecx + edi + 0x14], al
inc edi
cmp edi, 4
mov esi, dword [ebp + 0x10]
jne 0x1004220d
test byte [esi + 0x18c0], 0x40
je 0x10042499
mov eax, dword [ebp - 0x644]
lea esi, [eax + 0x108]
xor ebx, ebx
mov eax, dword [ebp + 0x10]
or byte [eax + 0x18c0], 0x40
mov edi, dword [eax + 0x1bb4]
movsx ecx, byte [edi + ebx*4]
mov eax, 0
cmp ecx, 5
ja 0x1004233a
mov eax, dword [ecx*4 + 0x102cb894]
mov dword [esi - 0xe0], eax
movzx eax, byte [edi + ebx*4 + 1]
push eax
call fcn.1021a4e0
add esp, 4
mov dword [esi - 0xd0], eax
movzx eax, byte [edi + ebx*4 + 2]
push eax
call fcn.1021a4e0
add esp, 4
mov dword [esi - 0xc0], eax
movsx ecx, byte [edi + ebx*4 + 3]
xor eax, eax
mov edx, 0
cmp ecx, 3
ja 0x10042380
mov edx, dword [ecx*4 + 0x102cb8ac]
mov dword [esi - 0xb0], edx
movsx ecx, byte [edi + ebx*4 + 4]
cmp ecx, 3
ja 0x10042397
mov eax, dword [ecx*4 + 0x102cb8ac]
mov dword [esi - 0xa0], eax
movsx ecx, byte [edi + ebx*4 + 5]
xor eax, eax
mov edx, 0
cmp ecx, 3
ja 0x100423b5
mov edx, dword [ecx*4 + 0x102cb8ac]
mov dword [esi - 0x90], edx
movsx ecx, byte [edi + ebx*4 + 6]
cmp ecx, 3
ja 0x100423cc
mov eax, dword [ecx*4 + 0x102cb8ac]
mov dword [esi - 0x80], eax
movsx ecx, byte [edi + ebx*4 + 7]
xor eax, eax
mov edx, 0
cmp ecx, 3
ja 0x100423e7
mov edx, dword [ecx*4 + 0x102cb8ac]
mov dword [esi - 0x70], edx
movsx ecx, byte [edi + ebx*4 + 8]
cmp ecx, 3
ja 0x100423fb
mov eax, dword [ecx*4 + 0x102cb8ac]
mov dword [esi - 0x60], eax
movsx ecx, byte [edi + ebx*4 + 9]
xor eax, eax
mov edx, 0
cmp ecx, 3
ja 0x10042416
mov edx, dword [ecx*4 + 0x102cb8bc]
mov dword [esi - 0x50], edx
movsx ecx, byte [edi + ebx*4 + 0xa]
cmp ecx, 3
ja 0x1004242a
mov eax, dword [ecx*4 + 0x102cb8bc]
mov dword [esi - 0x40], eax
movsx ecx, byte [edi + ebx*4 + 0xb]
xor eax, eax
mov edx, 0
cmp ecx, 3
ja 0x10042445
mov edx, dword [ecx*4 + 0x102cb8bc]
mov dword [esi - 0x30], edx
movsx ecx, byte [edi + ebx*4 + 0xc]
cmp ecx, 3
ja 0x10042459
mov eax, dword [ecx*4 + 0x102cb8bc]
mov dword [esi - 0x20], eax
movsx ecx, byte [edi + ebx*4 + 0xd]
xor eax, eax
mov edx, 0
cmp ecx, 3
ja 0x10042474
mov edx, dword [ecx*4 + 0x102cb8bc]
mov dword [esi - 0x10], edx
movsx ecx, byte [edi + ebx*4 + 0xe]
cmp ecx, 3
ja 0x10042488
mov eax, dword [ecx*4 + 0x102cb8bc]
mov dword [esi], eax
add ebx, 0xb
add esi, 4
cmp ebx, 0x2c
jne 0x10042315
mov esi, dword [ebp + 0x10]
mov ecx, esi
push 0x3000
call fcn.10085800
mov bh, al
mov edi, dword [ebp - 0x644]
mov byte [edi + 0x124], al
mov ecx, esi
push 0x3001
call fcn.10085800
mov byte [edi + 0x125], al
or bh, al
mov ecx, esi
push 0x3002
call fcn.10085800
mov bl, al
mov byte [edi + 0x126], al
mov ecx, esi
push 0x3003
call fcn.10085800
mov byte [edi + 0x127], al
or bl, al
or bl, bh
mov ecx, esi
push 0x3004
call fcn.10085800
mov bh, al
mov byte [edi + 0x128], al
mov ecx, esi
push 0x3005
call fcn.10085800
mov byte [edi + 0x129], al
or bh, al
or bh, bl
mov ecx, dword [edi + 8]
and ecx, 0xffffffe3
movzx edx, bh
shl edx, 2
movzx eax, byte [edi + 0x150]
shl eax, 3
xor ebx, ebx
cmp byte [ebp + 8], 0
sete bl
shl ebx, 4
or ebx, edx
or eax, ecx
or eax, ebx
mov dword [edi + 8], eax
xor ecx, ecx
cmp byte [esi + 0x1c44], 0
sete cl
and eax, 0xfffffdff
shl ecx, 9
or ecx, eax
mov dword [edi + 8], ecx
mov ecx, esi
push 0xbc0
call fcn.10085800
mov ecx, 0xfffffeff
and ecx, dword [edi + 8]
movzx eax, al
shl eax, 8
or eax, ecx
mov dword [edi + 8], eax
mov ecx, esi
push 0xb50
call fcn.10085800
mov ecx, dword [edi + 8]
and ecx, 0xfffffffe
movzx eax, al
or eax, ecx
mov dword [edi + 8], eax
mov ecx, esi
push 0x803a
call fcn.10085800
mov ecx, dword [edi + 8]
and ecx, 0xffffffbf
movzx eax, al
shl eax, 6
or eax, ecx
mov dword [edi + 8], eax
mov ecx, esi
push 0xba1
call fcn.10085800
mov ecx, 0xffffff7f
and ecx, dword [edi + 8]
movzx eax, al
shl eax, 7
or eax, ecx
mov dword [edi + 8], eax
mov ecx, esi
push 0xb60
call fcn.10085800
mov ecx, dword [edi + 8]
and ecx, 0xfffffffd
movzx eax, al
lea eax, [ecx + eax*2]
mov dword [edi + 8], eax
mov ecx, esi
push 0x8861
call fcn.10085800
mov ecx, dword [edi + 8]
and ecx, 0xffffffdf
movzx eax, al
shl eax, 5
or eax, ecx
mov dword [edi + 8], eax
mov ecx, esi
push 0xb57
call fcn.10085800
mov ecx, 0xfffff3ff
and ecx, dword [edi + 8]
movzx eax, al
shl eax, 0xa
or eax, ecx
mov ebx, edi
mov dword [edi + 8], eax
or byte [esi + 0x18c0], 0x40
mov eax, dword [esi + 0x1bb4]
mov al, byte [eax + 0x28]
mov byte [edi + 0x118], al
or byte [esi + 0x18c0], 0x40
mov eax, dword [esi + 0x1bb4]
mov al, byte [eax + 0x54]
mov byte [edi + 0x119], al
or byte [esi + 0x18c0], 0x40
mov eax, dword [esi + 0x1bb4]
mov al, byte [eax + 0x80]
mov byte [edi + 0x11a], al
or byte [esi + 0x18c0], 0x40
mov eax, dword [esi + 0x1bb4]
mov al, byte [eax + 0xac]
mov byte [edi + 0x11b], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax]
mov byte [edi + 0x11c], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax + 0x64]
mov byte [edi + 0x11d], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax + 0xc8]
mov byte [edi + 0x11e], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax + 0x12c]
mov byte [edi + 0x11f], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax + 0x190]
mov byte [edi + 0x120], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax + 0x1f4]
mov byte [edi + 0x121], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax + 0x258]
mov byte [edi + 0x122], al
mov eax, dword [esi + 0x1c18]
mov al, byte [eax + 0x2bc]
mov byte [edi + 0x123], al
mov al, byte [esi + 0x1c64]
mov byte [edi + 0x12a], al
or byte [esi + 0x18c1], 2
mov al, byte [esi + 0x1c24]
mov byte [edi + 0x12b], al
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x1328]
mov al, 1
cmp byte [edx + 0x12dc], 0
jne 0x10042754
cmp byte [edx + 0x12dd], 0
setne al
lea esi, [ebx + 8]
mov byte [ebp - 0x650], cl
test cl, cl
mov byte [ebp - 0x65c], al
jne 0x10042789
test al, al
je 0x10042789
mov eax, 0xffffefff
and eax, dword [esi]
mov ecx, dword [ebp + 0x10]
movzx ecx, byte [ecx + 0x18e8]
shl ecx, 0xc
or ecx, eax
mov dword [esi], ecx
mov ebx, dword [ebp - 0x644]
mov ecx, ebx
push dword [ebp + 0x10]
call fcn.10043700
add esp, 4
test eax, eax
je 0x100427a2
xor esi, esi
inc esi
jmp 0x100432e1
mov edi, 0x130
lea ecx, [ebx + edi]
lea edx, [ebp - 0x5c4]
push esi
call fcn.10048400
add esp, 4
lea eax, [ebp - 0x5c4]
add edi, dword [eax]
push 0x5b4
push edi
push eax
mov esi, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x500]
mov edx, dword [ebx + 4]
cmp dword [edx + 0x54], ecx
jbe 0x100427f9
mov eax, dword [edx + 0x58]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
cmp eax, 0xffffffff
cmovne ecx, eax
mov dword [ebp - 0x648], ecx
jmp 0x10042887
mov edi, ecx
shr edi, 0x10
mov eax, ecx
shr eax, 8
mov esi, 0xff
mov ebx, ecx
and ebx, esi
and eax, esi
and edi, esi
mov esi, ecx
shr esi, 0x18
mov dword [ebp - 0x64c], ebx
xor ebx, 0x811c9dc5
imul ebx, ebx, 0x1000193
xor ebx, eax
imul ebx, ebx, 0x1000193
xor ebx, edi
imul ebx, ebx, 0x1000193
xor ebx, esi
imul esi, ebx, 0x1000193
and esi, dword [edx + 0x74]
mov ebx, dword [edx + 0x60]
mov edx, dword [edx + 0x68]
mov dword [ebp - 0x654], edx
mov edx, dword [edx + esi*8 + 4]
mov dword [ebp - 0x648], 0
cmp edx, ebx
je 0x10042887
and ecx, 0xff000000
shl edi, 0x10
or edi, ecx
shl eax, 8
or eax, edi
add eax, dword [ebp - 0x64c]
cmp eax, dword [edx + 8]
jne 0x100432f7
mov esi, dword [ebp + 0x10]
jmp 0x10043315
mov esi, dword [ebp + 0x10]
xor edi, edi
mov eax, dword [esi + 0x1518]
mov ebx, dword [eax + edi + 4]
test ebx, ebx
je 0x10042956
mov ecx, ebx
xor esi, esi
push esi
push esi
call fcn.1008e3d0
mov dword [ebp - 0x64c], eax
mov ecx, ebx
push esi
push esi
call fcn.1008e410
mov ecx, dword [ebp - 0x64c]
test ecx, ecx
je 0x10042956
test eax, eax
je 0x10042956
movd xmm0, eax
movq xmm2, qword [0x102c3120]
por xmm0, xmm2
subsd xmm0, xmm2
movd xmm1, ecx
por xmm1, xmm2
subsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
xorps xmm2, xmm2
cvtsi2ss xmm2, dword [ebx + 0xf0]
divss xmm2, xmm1
movss dword [ebp + edi*2 - 0x604], xmm2
xorps xmm2, xmm2
cvtsi2ss xmm2, dword [ebx + 0xf4]
cvtsd2ss xmm0, xmm0
divss xmm2, xmm0
movss dword [ebp + edi*2 - 0x600], xmm2
xorps xmm2, xmm2
cvtsi2ss xmm2, dword [ebx + 0xf8]
divss xmm2, xmm1
movss dword [ebp + edi*2 - 0x5fc], xmm2
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [ebx + 0xfc]
divss xmm1, xmm0
movss dword [ebp + edi*2 - 0x5f8], xmm1
add edi, 8
cmp edi, 0x20
mov esi, dword [ebp + 0x10]
jne 0x1004288c
mov eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
mov edi, dword [ebp - 0x648]
je 0x10042984
lea edx, [ebp - 0x604]
mov ecx, edi
push edx
push 4
push eax
call fcn.1005d1d0
mov eax, dword [esi + 0x18c0]
cmp byte [ebp - 0x650], 0
je 0x100429cc
mov ecx, eax
and ecx, 0x2000
je 0x100429cc
movzx eax, byte [esi + 0x18e8]
mov ecx, dword [ebp + 0xc]
lea esi, [ecx + 8]
mov ecx, esi
push eax
call fcn.10085790
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 0x1c6c]
mov ecx, esi
mov esi, dword [ebp + 0x10]
push eax
call fcn.1008a330
jmp 0x10042a9d
cmp byte [ebp - 0x65c], 0
je 0x10042a9d
mov ebx, dword [esi + 0x14e0]
mov ecx, dword [ebx + 0x60]
add ebx, 0x60
test ecx, ecx
cmove ebx, ecx
cmp byte [esi + 0x18e8], 0
je 0x10042a9d
bt eax, 0xd
jae 0x10042a74
movzx edi, byte [esi + 0x1c6c]
mov ecx, ebx
call fcn.10041800
mov dword [ebp - 0x64c], eax
mov ecx, ebx
call fcn.100418a0
mov dword [ebp - 0x650], eax
mov ecx, ebx
call fcn.10041940
mov esi, eax
mov ecx, ebx
call fcn.100419e0
mov ecx, dword [ebp - 0x650]
shl ecx, 4
shl esi, 8
shl eax, 0xc
or eax, esi
shl edi, 0x10
or edi, dword [ebp - 0x64c]
or edi, ecx
or edi, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x618], edi
mov edi, dword [ebp - 0x648]
cmp eax, 0xffffffff
je 0x10042a71
lea edx, [ebp - 0x618]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d750
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x12dc], 0
jne 0x10042a9d
mov esi, dword [eax + 0x1d14]
mov eax, dword [esi]
mov ebx, dword [eax + 0xcc]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
mov esi, dword [ebp + 0x10]
call ebx
mov eax, dword [esi + 0x18c0]
test al, 0xa
mov ebx, dword [ebp - 0x658]
je 0x10042c0b
mov ecx, ebx
push 1
call fcn.1004a870
test al, al
jne 0x10042afa
movss xmm0, dword [esi + 0x1900]
movss xmm1, dword [esi + 0x1904]
movss xmm2, dword [esi + 0x1908]
sub esp, 0x10
movss dword [esp + 0xc], xmm2
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
mov dword [esp], 1
mov ecx, dword [ebp + 0xc]
call fcn.100212e0
mov ecx, ebx
push 0
call fcn.1004a870
test al, al
jne 0x10042b25
movups xmm0, xmmword [esi + 0x18f0]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov dword [esp], 2
mov ecx, dword [ebp + 0xc]
call fcn.100213c0
mov ecx, ebx
push 2
call fcn.1004a870
test al, al
jne 0x10042b52
movss xmm0, dword [esi + 0x1c60]
sub esp, 8
movss dword [esp + 4], xmm0
mov dword [esp], 3
mov ecx, dword [ebp + 0xc]
call fcn.10021140
mov eax, dword [esi + 0x18d4]
mov eax, dword [eax]
test al, 1
jne 0x10042b86
mov eax, dword [esi + 0x190c]
movups xmm0, xmmword [eax]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov dword [esp], 4
mov ecx, dword [ebp + 0xc]
call fcn.100213c0
mov eax, dword [esi + 0x18d4]
mov eax, dword [eax]
test al, 2
jne 0x10042bb3
mov eax, dword [esi + 0x190c]
movups xmm0, xmmword [eax + 0x10]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov dword [esp], 5
mov ecx, dword [ebp + 0xc]
call fcn.100213c0
mov eax, dword [esi + 0x18d4]
mov eax, dword [eax]
test al, 4
jne 0x10042be0
mov eax, dword [esi + 0x190c]
movups xmm0, xmmword [eax + 0x20]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov dword [esp], 6
mov ecx, dword [ebp + 0xc]
call fcn.100213c0
mov eax, dword [esi + 0x18d4]
mov eax, dword [eax]
test al, 8
jne 0x10042c05
mov eax, dword [esi + 0x190c]
movups xmm0, xmmword [eax + 0x30]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov dword [esp], 7
mov ecx, dword [ebp + 0xc]
call fcn.100213c0
mov eax, dword [esi + 0x18c0]
test al, 0x20
jne 0x1004332b
mov ecx, dword [esi + 0x18c0]
test cl, 0x40
je 0x10042de1
or ecx, 0x40
mov dword [esi + 0x18c0], ecx
mov eax, dword [esi + 0x1bb4]
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x4c4], xmm0
movss xmm0, dword [eax + 0x14]
movss dword [ebp - 0x4c0], xmm0
movss xmm0, dword [eax + 0x18]
movss dword [ebp - 0x4bc], xmm0
movss xmm0, dword [eax + 0x1c]
movss dword [ebp - 0x4b8], xmm0
movss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x484], xmm0
movss xmm0, dword [eax + 0x24]
movss dword [ebp - 0x474], xmm0
mov dword [esi + 0x18c0], ecx
movss xmm0, dword [eax + 0x3c]
movss dword [ebp - 0x4b4], xmm0
movss xmm0, dword [eax + 0x40]
movss dword [ebp - 0x4b0], xmm0
movss xmm0, dword [eax + 0x44]
movss dword [ebp - 0x4ac], xmm0
movss xmm0, dword [eax + 0x48]
movss dword [ebp - 0x4a8], xmm0
movss xmm0, dword [eax + 0x4c]
movss dword [ebp - 0x480], xmm0
movss xmm0, dword [eax + 0x50]
movss dword [ebp - 0x470], xmm0
mov dword [esi + 0x18c0], ecx
movss xmm0, dword [eax + 0x68]
movss dword [ebp - 0x4a4], xmm0
movss xmm0, dword [eax + 0x6c]
movss dword [ebp - 0x4a0], xmm0
movss xmm0, dword [eax + 0x70]
movss dword [ebp - 0x49c], xmm0
movss xmm0, dword [eax + 0x74]
movss dword [ebp - 0x498], xmm0
movss xmm0, dword [eax + 0x78]
movss dword [ebp - 0x47c], xmm0
movss xmm0, dword [eax + 0x7c]
movss dword [ebp - 0x46c], xmm0
mov dword [esi + 0x18c0], ecx
movss xmm0, dword [eax + 0x94]
movss dword [ebp - 0x494], xmm0
movss xmm0, dword [eax + 0x98]
movss dword [ebp - 0x490], xmm0
movss xmm0, dword [eax + 0x9c]
movss dword [ebp - 0x48c], xmm0
movss xmm0, dword [eax + 0xa0]
movss dword [ebp - 0x488], xmm0
movss xmm0, dword [eax + 0xa4]
movss dword [ebp - 0x478], xmm0
movss xmm0, dword [eax + 0xa8]
movss dword [ebp - 0x468], xmm0
mov eax, dword [ebp - 0x90]
cmp eax, 0xffffffff
je 0x10042da9
lea edx, [ebp - 0x4c4]
mov ecx, edi
push edx
push 4
push eax
call fcn.1005d1d0
mov eax, dword [ebp - 0x8c]
cmp eax, 0xffffffff
je 0x10042dc5
lea edx, [ebp - 0x484]
mov ecx, edi
push edx
push 4
push eax
call fcn.1005cff0
mov eax, dword [ebp - 0x88]
cmp eax, 0xffffffff
je 0x10042de1
lea edx, [ebp - 0x474]
mov ecx, edi
push edx
push 4
push eax
call fcn.1005cff0
mov eax, dword [esi + 0x18c0]
bt eax, 0xc
jae 0x10042e1f
movss xmm0, dword [esi + 0x1c68]
mov edx, dword [ebp - 0x84]
movss dword [ebp - 0x618], xmm0
cmp edx, 0xffffffff
je 0x10042e1f
lea eax, [ebp - 0x618]
mov ecx, edi
push eax
push 1
push edx
call fcn.1005cff0
mov eax, dword [esi + 0x18c0]
test al, al
mov ecx, dword [ebp - 0x644]
jns 0x10042ede
mov eax, dword [ebp - 0x80]
cmp eax, 0xffffffff
je 0x10042e4c
lea edx, [esi + 0x1bc0]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d1d0
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x7c]
cmp eax, 0xffffffff
je 0x10042e6b
lea edx, [esi + 0x1bd0]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d1d0
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x78]
cmp eax, 0xffffffff
je 0x10042e8a
lea edx, [esi + 0x1be0]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d1d0
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x74]
cmp eax, 0xffffffff
je 0x10042ea9
lea edx, [esi + 0x1bf0]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d1d0
mov ecx, dword [ebp - 0x644]
movss xmm0, dword [esi + 0x1c00]
mov eax, dword [ebp - 0x70]
movss dword [ebp - 0x618], xmm0
cmp eax, 0xffffffff
je 0x10042ed8
lea edx, [ebp - 0x618]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005cff0
mov ecx, dword [ebp - 0x644]
mov eax, dword [esi + 0x18c0]
bt eax, 8
jae 0x100430bc
mov eax, dword [ebp - 0x6c]
cmp eax, 0xffffffff
je 0x10042f01
lea edx, [esi + 0x1c04]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d1d0
mov ecx, dword [esi + 0x1c18]
lea eax, [ebp - 0x464]
add ecx, 0x60
lea esi, [ebp - 0x184]
xor edx, edx
mov ebx, 0xffffffe8
movups xmm0, xmmword [ecx - 0x5c]
movups xmmword [ebp + edx*4 - 0x464], xmm0
movups xmm0, xmmword [ecx - 0x4c]
movups xmmword [ebp + edx*4 - 0x3e4], xmm0
movups xmm0, xmmword [ecx - 0x3c]
movups xmmword [ebp + edx*4 - 0x364], xmm0
movups xmm0, xmmword [ecx - 0x2c]
movups xmmword [ebp + edx*4 - 0x2e4], xmm0
movsd xmm0, qword [ecx - 0x1c]
movsd qword [esi + ebx*4 - 0x80], xmm0
mov edi, dword [ecx - 0x14]
mov dword [esi + ebx*4 - 0x78], edi
movss xmm0, dword [ecx - 0x10]
movss dword [ebp + edx - 0x204], xmm0
movss xmm0, dword [ecx - 0xc]
movss dword [ebp + edx - 0x1e4], xmm0
movss xmm0, dword [ecx - 8]
movss dword [ebp + edx - 0x1c4], xmm0
movss xmm0, dword [ecx - 4]
movss dword [ebp + edx - 0x1a4], xmm0
movss xmm0, dword [ecx]
movss dword [ebp + edx - 0x184], xmm0
add edx, 4
add ecx, 0x64
add ebx, 3
cmp edx, 0x20
jne 0x10042f1d
mov edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
mov edi, dword [ebp - 0x648]
je 0x10042fcf
mov ecx, edi
push eax
push 8
push edx
call fcn.1005d1d0
mov eax, dword [ebp - 0x64]
cmp eax, 0xffffffff
mov ebx, dword [ebp - 0x658]
je 0x10042fee
mov ecx, edi
lea edx, [ebp - 0x3e4]
push edx
push 8
push eax
call fcn.1005d1d0
mov eax, dword [ebp - 0x60]
cmp eax, 0xffffffff
je 0x10043007
mov ecx, edi
lea edx, [ebp - 0x364]
push edx
push 8
push eax
call fcn.1005d1d0
mov eax, dword [ebp - 0x5c]
cmp eax, 0xffffffff
je 0x10043020
mov ecx, edi
lea edx, [ebp - 0x2e4]
push edx
push 8
push eax
call fcn.1005d1d0
mov eax, dword [ebp - 0x58]
cmp eax, 0xffffffff
je 0x10043039
mov ecx, edi
lea edx, [ebp - 0x264]
push edx
push 8
push eax
call fcn.1005d120
mov eax, dword [ebp - 0x54]
cmp eax, 0xffffffff
je 0x10043052
mov ecx, edi
lea edx, [ebp - 0x204]
push edx
push 8
push eax
call fcn.1005cff0
mov eax, dword [ebp - 0x50]
cmp eax, 0xffffffff
je 0x1004306b
mov ecx, edi
lea edx, [ebp - 0x1e4]
push edx
push 8
push eax
call fcn.1005cff0
mov eax, dword [ebp - 0x4c]
cmp eax, 0xffffffff
je 0x10043084
mov ecx, edi
lea edx, [ebp - 0x1c4]
push edx
push 8
push eax
call fcn.1005cff0
mov eax, dword [ebp - 0x48]
cmp eax, 0xffffffff
je 0x1004309d
mov ecx, edi
lea edx, [ebp - 0x1a4]
push edx
push 8
push eax
call fcn.1005cff0
mov eax, dword [ebp - 0x44]
cmp eax, 0xffffffff
mov ecx, dword [ebp - 0x644]
je 0x100430bc
mov ecx, edi
push esi
push 8
push eax
call fcn.1005cff0
mov ecx, dword [ebp - 0x644]
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 0x18c0]
bt eax, 9
jae 0x10043186
or eax, 0x200
mov dword [esi + 0x18c0], eax
movss xmm0, dword [esi + 0x1c28]
mov eax, dword [ebp - 0x40]
movss dword [ebp - 0x618], xmm0
cmp eax, 0xffffffff
je 0x10043109
lea edx, [ebp - 0x618]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005cff0
mov ecx, dword [ebp - 0x644]
movss xmm0, dword [esi + 0x1c2c]
mov eax, dword [ebp - 0x3c]
movss dword [ebp - 0x618], xmm0
cmp eax, 0xffffffff
je 0x10043138
lea edx, [ebp - 0x618]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005cff0
mov ecx, dword [ebp - 0x644]
movss xmm0, dword [esi + 0x1c30]
mov eax, dword [ebp - 0x38]
movss dword [ebp - 0x618], xmm0
cmp eax, 0xffffffff
je 0x10043167
lea edx, [ebp - 0x618]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005cff0
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x34]
cmp eax, 0xffffffff
je 0x10043186
lea edx, [esi + 0x1c34]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d1d0
mov ecx, dword [ebp - 0x644]
test byte [esi + 0x18c1], 0x40
je 0x1004321b
lea esi, [ebp - 0x164]
mov ecx, ebx
push esi
push 0
call fcn.1004a950
lea eax, [ebp - 0x154]
mov ecx, ebx
push eax
push 1
call fcn.1004a950
lea eax, [ebp - 0x144]
mov ecx, ebx
push eax
push 2
call fcn.1004a950
lea eax, [ebp - 0x134]
mov ecx, ebx
push eax
push 3
call fcn.1004a950
lea eax, [ebp - 0x124]
mov ecx, ebx
push eax
push 4
call fcn.1004a950
lea edi, [ebp - 0x114]
mov ecx, ebx
push edi
push 5
call fcn.1004a950
mov ecx, dword [ebp - 0x644]
mov eax, dword [edi + 0xe4]
mov edi, dword [ebp - 0x648]
cmp eax, 0xffffffff
je 0x1004321b
mov ecx, edi
push esi
push 6
push eax
call fcn.1005d1d0
mov ecx, dword [ebp - 0x644]
mov esi, dword [ebp + 0x10]
movss xmm0, dword [esi + 0x1c48]
mov eax, dword [ebp - 0x28]
movss dword [ebp - 0x618], xmm0
cmp eax, 0xffffffff
je 0x1004324d
lea edx, [ebp - 0x618]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005cff0
mov ecx, dword [ebp - 0x644]
movss xmm0, dword [esi + 0x1c4c]
mov eax, dword [ebp - 0x24]
movss dword [ebp - 0x618], xmm0
cmp eax, 0xffffffff
je 0x1004327c
lea edx, [ebp - 0x618]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005cff0
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
je 0x1004329b
lea edx, [esi + 0x1c54]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d120
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
je 0x100432ba
lea edx, [ecx + 0x154]
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d1d0
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x18]
cmp eax, 0xffffffff
je 0x100432d5
add ecx, 0x164
mov edx, ecx
mov ecx, edi
push edx
push 1
push eax
call fcn.1005d080
mov dword [esi + 0x18c0], 0
xor esi, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10212780
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
add esi, esi
mov ecx, dword [ebp - 0x654]
mov ecx, dword [ecx + esi*4]
mov esi, dword [ebp + 0x10]
cmp edx, ecx
je 0x1004288a
mov edx, dword [edx + 4]
cmp eax, dword [edx + 8]
jne 0x10043305
cmp edx, ebx
je 0x1004288a
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x648], eax
jmp 0x1004288a
mov eax, dword [esi + 0x1a60]
lea eax, [eax + eax*4]
mov ecx, esi
mov esi, dword [esi + eax*4 + 0x190c]
mov edi, dword [ecx + eax*4 + 0x1910]
xor eax, eax
mov ebx, 0
cmp esi, edi
je 0x1004339a
sub edi, esi
js 0x100436ed
mov ebx, edi
sar ebx, 2
cmp edi, 0x1000
jb 0x1004337c
lea eax, [edi + 0x23]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x10043388
push edi
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, eax
lea ebx, [ecx + ebx*4]
push edi
push esi
push ecx
mov esi, ecx
call sub.VCRUNTIME140.dll_memmove
mov eax, esi
add esp, 0xc
mov dword [ebp - 0x660], ebx
mov dword [ebp - 0x654], eax
mov eax, dword [ebp - 0xc0]
cmp eax, 0xffffffff
mov edi, dword [ebp - 0x648]
je 0x100433c9
mov ecx, edi
push dword [ebp - 0x654]
push 0
push 1
push eax
call fcn.1005dbc0
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x1ba4]
lea esi, [eax + eax*4]
xor eax, eax
mov dword [ebp - 0x618], eax
mov dword [ebp - 0x614], eax
mov dword [ebp - 0x610], eax
mov eax, dword [ecx + esi*4 + 0x1a50]
mov ebx, dword [ecx + esi*4 + 0x1a54]
cmp eax, ebx
je 0x1004346b
sub ebx, eax
js 0x100436ed
mov dword [ebp - 0x64c], eax
mov edi, ebx
sar edi, 2
cmp ebx, 0x1000
jb 0x10043430
lea eax, [ebx + 0x23]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1004343a
push ebx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x618], eax
mov dword [ebp - 0x614], eax
lea edi, [eax + edi*4]
mov dword [ebp - 0x610], edi
push ebx
push dword [ebp - 0x64c]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [ebp - 0x614], edi
mov edi, dword [ebp - 0x648]
mov eax, dword [ebp + 0x10]
lea eax, [eax + esi*4]
add eax, 0x1a50
movsd xmm0, qword [eax + 0xc]
movsd qword [ebp - 0x60c], xmm0
mov eax, dword [ebp - 0xbc]
cmp eax, 0xffffffff
je 0x100434a0
mov ecx, edi
push dword [ebp - 0x618]
push 0
push 1
push eax
call fcn.1005dbc0
mov edi, esp
push eax
sub esp, 0x10
mov ebx, esp
lea esi, [ebp - 0x640]
lea ecx, [ebp - 0x618]
push esi
call fcn.10215030
mov ecx, esi
push ebx
call fcn.10215160
lea ecx, [ebp - 0x62c]
call fcn.1021ba30
mov esp, edi
mov eax, dword [esi]
test eax, eax
lea edi, [ebp - 0x5c4]
je 0x10043508
mov ecx, dword [ebp - 0x638]
sub ecx, eax
cmp ecx, 0x1000
jb 0x100434fe
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100436f2
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [ebp - 0xb4]
cmp eax, 0xffffffff
mov ecx, dword [ebp - 0x648]
je 0x10043529
push dword [ebp - 0x62c]
push 0
push 1
push eax
call fcn.1005dbc0
mov ecx, 0xffffffec
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x64c], edi
mov eax, dword [esi + 0x1ba8]
mov edx, ecx
mov ecx, dword [eax + ecx + 0x154]
mov dword [ebp - 0x650], edx
add eax, edx
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*4]
mov edi, dword [eax + ecx*4 + 4]
cmp edx, edi
je 0x1004358f
sub edi, edx
js 0x100436ed
mov dword [ebp - 0x65c], edx
mov esi, edi
sar esi, 2
cmp edi, 0x1000
jb 0x10043595
lea eax, [edi + 0x23]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x100435a1
xor esi, esi
xor ebx, ebx
jmp 0x100435b4
push edi
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ebx, eax
lea esi, [ebx + esi*4]
push edi
push dword [ebp - 0x65c]
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
movups xmm0, xmmword [ebx + 0x30]
mov edi, dword [ebp - 0x64c]
movups xmmword [edi + 0x30], xmm0
movups xmm0, xmmword [ebx + 0x20]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
sub esi, ebx
cmp esi, 0x1000
jae 0x100435e7
mov esi, dword [ebp + 0x10]
jmp 0x100435fd
mov eax, dword [ebx - 4]
add ebx, 0xfffffffc
sub ebx, eax
cmp ebx, 0x20
mov esi, dword [ebp + 0x10]
jae 0x100436f2
mov ebx, eax
push ebx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ecx, dword [ebp - 0x650]
add ecx, 0x144
add edi, 0x40
cmp ecx, 0x4fc
mov ebx, dword [ebp - 0x658]
jne 0x10043531
mov eax, dword [ebp - 0xb8]
cmp eax, 0xffffffff
mov edi, dword [ebp - 0x648]
je 0x1004364c
lea edx, [ebp - 0x5c4]
mov ecx, edi
push edx
push 0
push 4
push eax
call fcn.1005dbc0
mov eax, dword [ebp - 0x62c]
test eax, eax
je 0x1004367f
mov ecx, dword [ebp - 0x624]
sub ecx, eax
cmp ecx, 0x1000
jb 0x10043675
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100436f2
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [ebp - 0x618]
test eax, eax
je 0x100436b2
mov ecx, dword [ebp - 0x610]
sub ecx, eax
cmp ecx, 0x1000
jb 0x100436a8
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x100436f2
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ecx, dword [ebp - 0x654]
test ecx, ecx
je 0x10042c13
mov eax, dword [ebp - 0x660]
sub eax, ecx
cmp eax, 0x1000
jb 0x100436de
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x100436f2
mov ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x10042c13
call fcn.102133d0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3