Function at 0x40f558
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x650
cmp byte [edx + 0x49], 0
call 0x40f570
pop esi
je 0x40f587
and dword [ecx + 4], 0
mov dword [ecx + 8], 0x430412
mov dword [ecx + 0xc], 0x36
jmp 0x40f5d7
mov eax, dword [edx + 8]
or eax, dword [edx + 0xc]
je 0x40f5a3
and dword [ecx + 4], 0
mov dword [ecx + 8], 0x430448
mov dword [ecx + 0xc], 0x33
jmp 0x40f5d7
cmp byte [edx + 0x48], 0
je 0x40f5bd
and dword [ecx + 4], 0
mov dword [ecx + 8], 0x43047b
mov dword [ecx + 0xc], 0x3d
jmp 0x40f5d7
mov eax, dword [edx + 0x28]
or eax, dword [edx + 0x2c]
je 0x40f5e5
and dword [ecx + 4], 0
mov dword [ecx + 8], 0x4304b8
mov dword [ecx + 0xc], 0x47
mov dword [ecx], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [edx + 0x38]
mov dword [esp + 0x184], esi
mov dword [esp + 0x5c], ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov esi, dword [edx + 0x3c]
mov edi, dword [edx + 0x44]
cmp ebx, 0x10
mov dword [esp + 0x18c], eax
mov dword [esp + 0x188], ecx
mov dword [esp + 0x190], esi
mov dword [esp + 0x194], edi
je 0x40f62e
cmp ebx, 0x40
je 0x40f62e
cmp ebx, 0x20
jne 0x4104aa
push 0x10
pop ecx
push 4
pop edx
call fcn.00415068
test eax, eax
je 0x4115b8
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2dc], 1
and dword [esp + 0x2e0], 0
lea esi, [esp + 0x60]
mov edx, ebx
mov ecx, esi
call fcn.004228ec
cmp dword [esi], 1
jne 0x40f6b9
movsd xmm0, qword [esp + 0x64]
movsd xmm1, qword [esp + 0x6c]
lea ecx, [esp + 0x2d8]
movsd qword [esp + 0x1a0], xmm1
movsd qword [esp + 0x198], xmm0
movsd qword [esp + 0x234], xmm0
movsd qword [esp + 0x23c], xmm1
mov dword [esp + 0x230], 1
call fcn.004229d1
jmp 0x4109d3
lea edi, [esp + 0x19c]
lea esi, [esp + 0x68]
push 0x1e
pop eax
mov ecx, eax
lea edx, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov edi, edx
lea esi, [esp + 0x19c]
lea eax, [esp + 0x2dc]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x160]
mov dword [edx + 0x78], ebx
lea edi, [esp + 0x188]
mov dword [esp + 0x50], 0
movsd xmm0, qword [eax - 4]
mov eax, dword [eax + 4]
and dword [edx + 0x7c], 0
movsd qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [esp + 0x16c]
mov dword [ecx], 8
and dword [ecx + 4], 0
and dword [ecx + 8], 0
mov byte [ecx + 0xc], 0
lea ecx, [esp + 0x60]
lea eax, [esp + 0x198]
cmp edi, eax
je 0x4104cd
mov ebx, dword [edi]
mov edx, dword [edi + 4]
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 8]
and dword [esp + 0x224], 0
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x158]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], eax
mov edx, ebx
call fcn.004228ec
cmp dword [esp + 0x60], 1
je 0x410737
mov dword [esp + 0x1c], edi
mov dword [esp], esi
push 0x1e
pop edx
mov ecx, edx
lea edi, [esp + 0x19c]
lea esi, [esp + 0x68]
shr ebx, 3
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edi, [esp + 0x2dc]
lea esi, [esp + 0x19c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea esi, [esp + 0x2dc]
mov eax, dword [esp + 0x22c]
movsd xmm0, qword [esp + 0x224]
mov dword [esp + 0x220], eax
lea eax, [esp + 0x4b4]
movsd qword [esp + 0x218], xmm0
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edi, [esp + 0x530]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xd0
push 8
pop edx
call fcn.00415bd9
xor ecx, ecx
lea edi, [eax + 0xc]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
and dword [eax + 8], 0
push 0x1f
pop ecx
lea esi, [esp + 0x52c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x8c], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x88], ecx
mov dword [eax + 0x90], ebx
and dword [eax + 0x94], 0
and dword [eax + 0x9c], 0
and dword [eax + 0x98], 0
and dword [eax + 0xa4], 0
and dword [eax + 0xa0], 0
movsd xmm0, qword [esp + 0x218]
movsd qword [eax + 0xa8], xmm0
mov ecx, dword [esp + 0x220]
mov dword [eax + 0xb0], ecx
push 4
pop ecx
mov edi, dword [esp + 0x20]
mov dword [eax + 0xb4], ecx
and dword [eax + 0xb8], 0
and dword [eax + 0xbc], 0
mov dword [eax + 0xc0], ecx
and dword [eax + 0xc4], 0
and dword [eax + 0xc8], 0
mov dword [esp + 0x58], eax
mov eax, edi
push 8
pop ecx
mul ecx
jo 0x4115a8
mov esi, eax
test eax, eax
js 0x4115a8
mov ecx, esi
push 4
pop edx
call fcn.00415068
mov edx, dword [esp + 0x1c]
test eax, eax
je 0x4115ac
mov ecx, eax
lea esi, [edx + 0x10]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [edx]
mov dword [esp + 0x180], esi
mov esi, dword [esp]
mov dword [esp + 0x2dc], edi
mov edx, dword [edx + 4]
and dword [esp + 0x2e0], 0
mov dword [esp + 0x10], ecx
imul ecx, edi, 0x28
and edi, 0x1fffffff
mov dword [esp + 0x14], edx
add dword [esp + 0x50], edi
add ecx, esi
mov dword [esp + 0x34], ecx
cmp esi, dword [esp + 0x34]
je 0x410435
lea ecx, [esp + 0x58]
call fcn.0041560d
movzx edx, word [esi + 0x18]
mov ebx, eax
lea eax, [edx - 0x9f]
cmp eax, 0x30
push 0xa
pop ecx
mov dword [esp], esi
mov dword [esp + 0x1c], ebx
jb 0x40f956
lea eax, [edx - 0x73e]
cmp eax, 0x30
jae 0x40fa52
mov eax, edx
lea edx, [esp + 0x60]
test byte [esp + 0x15c], 1
mov ebx, esi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
jne 0x40fa0a
mov ecx, eax
mov dword [esp + 8], eax
mov edi, edx
call fcn.00421ba3
mov word [esp + 0x78], ax
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
lea ecx, [esp + 0xe0]
mov edx, edi
push 0
push 0
call fcn.004229f1
pop ecx
pop edx
mov dword [esp + 4], eax
push 0xa
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 8]
call fcn.00421bd0
mov word [esp + 0x78], ax
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
lea ecx, [esp + 0xe0]
lea edx, [esp + 0x60]
push 0
push 0
call fcn.004229f1
pop ecx
pop edx
mov ecx, dword [esp + 0x158]
mov dword [esp + 8], eax
cmp ecx, 0x40
jne 0x40faff
cmp eax, 9
mov ecx, eax
push 8
pop eax
cmovb ecx, eax
mov dword [esp + 0xc], ecx
push 0x40
pop eax
mov dword [esp + 0x18], eax
mov al, 4
jmp 0x40fb09
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
lea ecx, [esp + 0xe0]
push 0
push 0
call fcn.004229f1
pop ecx
pop edx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], ecx
jmp 0x40fb0d
lea eax, [edx - 0x291]
cmp eax, 0x2c
ja 0x40fbee
mov dword [esp + 0xc], eax
mov eax, dword [eax*4 + 0x4115dc]
add eax, dword [esp + 0x184]
jmp eax
mov dword [esp + 0xc], eax
mov al, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
mov esi, dword [esp]
mov ecx, dword [esi]
movzx eax, byte [esi + 0x26]
mov ebx, dword [esi + 4]
sub ecx, eax
sbb ebx, 0
mov dword [esp + 0x2c], ecx
push 0xa
pop ecx
lea edi, [esp + 0x198]
rep movsd dword es:[edi], dword [esi]
push 0x78
pop ecx
push 8
pop edx
call fcn.00415bd9
xor ecx, ecx
lea edi, [eax + 0x20]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x2c]
and dword [eax + 8], 0
mov dword [eax + 0x14], ebx
lea ebx, [esp + 0x198]
mov dword [eax + 0x10], ecx
and dword [eax + 0x1c], 0
and dword [eax + 0x18], 0
push 0xa
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, 0x436fb0
mov ecx, dword [esp + 0x1c]
and dword [eax + 0x48], 0
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x60], ecx
mov ecx, dword [esp + 4]
and dword [eax + 0x64], 0
mov dword [eax + 0x68], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 0x6c], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x70], 8
mov byte [eax + 0x74], cl
jmp 0x40fecf
lea eax, [edx - 0x11d3]
cmp eax, 0x14
ja 0x40fc0b
mov edi, edx
mov edx, 0x180003
bt edx, eax
mov edx, edi
jb 0x40f956
lea eax, [edx - 0x196]
cmp eax, 2
jae 0x410121
lea edx, [esp + 0x60]
test byte [esp + 0x15c], 1
mov ebx, esi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
jne 0x4102cf
mov word [esp + 0x78], 0x196
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
lea ecx, [esp + 0xe0]
push 0
push 0
mov ebx, edx
call fcn.004229f1
pop ecx
pop edx
mov dword [esp + 4], eax
push 0xa
pop ecx
mov esi, dword [esp]
mov edi, ebx
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
mov word [esp + 0x78], 0x197
lea ecx, [esp + 0xe0]
mov ebx, dword [esp]
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
push 0
push 0
call fcn.004229f1
pop ecx
pop edx
mov cl, 3
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ecx
jmp 0x410307
mov esi, dword [edi + 8]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], edi
cmp esi, 5
push 4
pop ecx
cmovb esi, ecx
lea ecx, [esp + 0x60]
add esi, 7
and esi, 0xfffffff8
add esi, eax
mov edx, esi
push edi
call fcn.00422a49
pop eax
mov eax, dword [esp + 0x64]
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x68]
call dword [eax + 0x18]
add esp, 0xc
mov eax, dword [esp + 0x68]
mov ecx, ebx
inc dword [eax]
call fcn.00415c89
mov dword [esp + 4], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
cmp edx, dword [esp + 0x2dc]
jne 0x40ff52
lea ecx, [esp + 0x2d8]
call fcn.004151d9
mov ecx, dword [esp + 0x2d8]
mov edx, dword [esp + 0x2e0]
jmp 0x40ff56
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp]
mov dword [esp + 0x30], ecx
mov dword [ecx + edx*8], ebx
mov ebx, dword [esp + 4]
add eax, 0x28
mov dword [ecx + edx*8 + 4], ebx
mov edx, esi
mov esi, eax
mov ecx, dword [esp + 0x2e0]
inc ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2e0], ecx
lea ecx, [esp + 0x60]
push edi
call fcn.00415bf6
pop eax
mov eax, dword [esp + 0x64]
push dword [esp + 0x60]
call dword [eax + 0x10]
add esp, 4
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x198]
adc dword [esp + 0x14], 0
dec dword [eax]
call fcn.00415c23
jmp 0x40f919
cmp dword [esp + 0x158], 0x40
jne 0x41024a
movzx eax, byte [edx + 0x4504bd]
xor ecx, ecx
cmp eax, ecx
je 0x41024a
cmp ecx, 3
ja 0x41014b
mov dl, byte [esi + ecx + 0x20]
jmp 0x41015c
mov edx, 0
cmp ecx, 4
push 6
pop esi
cmove edx, esi
mov esi, dword [esp]
inc ecx
cmp dl, 0x18
jne 0x410138
mov al, byte [esi + 0x1a]
add al, 0xbb
cmp al, 1
ja 0x41024a
push 0xa
pop ecx
lea edx, [esp + 0x60]
mov ebx, esi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x7a], 0x46
lea esi, [esp + 0xe0]
mov edi, edx
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
mov ecx, esi
push 0
push 0
call fcn.004229f1
pop ecx
pop edx
mov dword [esp + 4], eax
mov byte [esp + 0x7a], 0x45
mov ecx, esi
mov edx, edi
push 0
push dword [esp + 0x6c]
call fcn.004229f1
pop ecx
pop edx
mov dword [esp + 8], eax
mov ecx, dword [ebx]
movzx eax, byte [ebx + 0x26]
mov edx, dword [ebx + 4]
sub ecx, eax
mov eax, 0
sbb edx, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edx
push 0xa
pop ecx
lea edi, [esp + 0x198]
mov esi, ebx
mov ebx, edi
rep movsd dword es:[edi], dword [esi]
push 0x70
pop ecx
push 8
pop edx
call fcn.00415bd9
xor ecx, ecx
lea edi, [eax + 0x20]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x18]
and dword [eax + 8], 0
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x10], ecx
and dword [eax + 0x1c], 0
and dword [eax + 0x18], 0
push 0xa
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, 0x436edc
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
and dword [eax + 0x48], 0
mov dword [eax + 0x58], ecx
mov dword [eax + 0x5c], esi
mov dword [eax + 0x60], esi
mov dword [eax + 0x64], edx
mov byte [eax + 0x68], 4
jmp 0x40fecf
mov edi, dword [esi]
movzx eax, byte [esi + 0x26]
mov ebx, dword [esi + 4]
lea ecx, [esp + 0xe0]
mov edx, esi
sub edi, eax
sbb ebx, 0
mov dword [esp + 8], edi
push ebx
push edi
call fcn.004229f1
pop ecx
pop edx
mov dword [esp + 4], eax
push 0xa
pop ecx
lea edi, [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
push 0x50
pop ecx
push 8
pop edx
call fcn.00415bd9
xor ecx, ecx
lea edi, [eax + 0x20]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 8]
and dword [eax + 8], 0
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], ecx
and dword [eax + 0x1c], 0
and dword [eax + 0x18], 0
push 0xa
pop ecx
lea esi, [esp + 0x60]
lea ebx, [esp + 0x198]
rep movsd dword es:[edi], dword [esi]
mov edi, 0x437080
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], edx
jmp 0x40fecf
and dword [esp + 0x6c], 0
and dword [esp + 0x68], 0
lea ecx, [esp + 0xe0]
push 0
push 0
call fcn.004229f1
pop ecx
pop edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x18], 0
mov esi, ebx
mov ecx, dword [ebx]
mov ebx, dword [ebx + 4]
movzx eax, byte [esi + 0x26]
sub ecx, eax
sbb ebx, 0
mov dword [esp + 0x24], ecx
push 0xa
pop ecx
lea edi, [esp + 0x198]
rep movsd dword es:[edi], dword [esi]
push 0x70
pop ecx
push 8
pop edx
call fcn.00415bd9
xor ecx, ecx
lea edi, [eax + 0x20]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x24]
and dword [eax + 8], 0
mov dword [eax + 0x14], ebx
lea ebx, [esp + 0x198]
mov dword [eax + 0x10], ecx
and dword [eax + 0x1c], 0
and dword [eax + 0x18], 0
push 0xa
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, 0x437034
mov ecx, dword [esp + 0x1c]
and dword [eax + 0x48], 0
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 0x60], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 0x64], ecx
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x68], cl
jmp 0x40fecf
lea ecx, [esp + 0x58]
call fcn.0041560d
mov edx, dword [esp + 0x168]
mov esi, eax
cmp edx, dword [esp + 0x164]
jne 0x410463
lea ecx, [esp + 0x160]
call fcn.00415259
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x160]
shl edx, 4
mov dword [eax + edx], esi
movsd xmm0, qword [esp + 0x2d8]
movsd qword [eax + edx + 4], xmm0
mov ecx, dword [esp + 0x2e0]
mov dword [eax + edx + 0xc], ecx
inc dword [esp + 0x168]
lea ecx, [esp + 0x58]
call fcn.00415aff
mov edi, dword [esp + 0x180]
lea ecx, [esp + 0x60]
jmp 0x40f72f
and dword [esp + 0x234], 0
mov dword [esp + 0x238], 0x4370bc
mov dword [esp + 0x23c], 0xf
jmp 0x4109dd
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x168]
lea eax, [esp + 0x198]
mov dword [esp + 0x60], eax
push 0x20
pop eax
test edx, edx
mov esi, eax
je 0x4104f5
bsr esi, edx
xor esi, 0x1f
sub eax, esi
push eax
push 0
lea eax, [esp + 0x68]
push eax
call fcn.00423685
add esp, 0xc
mov eax, dword [esp + 0x50]
push 0x10
pop ecx
mul ecx
jo 0x4115a8
mov esi, eax
test eax, eax
js 0x4115a8
push 8
pop edx
mov ecx, esi
call fcn.00415068
test eax, eax
je 0x4115c0
lea ecx, [esp + 0x16c]
mov edi, eax
call fcn.004229e1
mov eax, dword [esp + 0x50]
mov dword [esp + 0x16c], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x170], eax
and dword [esp + 0x174], 0
mov ecx, dword [esp + 0x168]
mov eax, dword [esp + 0x160]
shl ecx, 4
add ecx, eax
mov dword [esp + 0xc], ecx
cmp dword [esp + 0xc], eax
je 0x410687
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x20], eax
lea esi, [ecx + edx*8]
add ecx, 0xfffffff8
shl edx, 3
mov dword [esp + 0x30], ecx
test edx, edx
je 0x41067f
mov eax, dword [esi - 4]
mov dword [esp], edx
mov edx, dword [eax + 8]
cmp edx, 5
push 4
pop ecx
cmovb edx, ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x10], esi
add edx, 7
and edx, 0xfffffff8
add edx, dword [esi - 8]
push eax
call fcn.00415bf6
pop eax
mov eax, dword [esp + 0x64]
push dword [esp + 0x60]
call dword [eax + 0x1c]
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x68]
xor ebx, ebx
mov esi, edx
dec dword [eax]
mov eax, edi
or eax, edx
mov eax, edi
sete cl
or eax, edx
jne 0x4105fa
cmp dword [esp + 0x14], 0
jne 0x410663
mov byte [esp + 0x1c], cl
mov eax, dword [esp + 0x30]
mov ecx, dword [esp]
add ecx, eax
call fcn.00415c89
mov dword [esp + 4], edx
mov edx, dword [esp + 0x174]
cmp edx, dword [esp + 0x170]
jne 0x41063b
lea ecx, [esp + 0x16c]
mov dword [esp + 8], eax
call fcn.00415413
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x174]
mov ecx, dword [esp + 0x16c]
shl edx, 4
mov dword [ecx + edx + 4], esi
mov esi, dword [esp + 4]
mov dword [ecx + edx], edi
mov dword [ecx + edx + 8], eax
mov dword [ecx + edx + 0xc], esi
mov cl, byte [esp + 0x1c]
inc dword [esp + 0x174]
mov esi, dword [esp + 0x10]
mov edx, dword [esp]
mov bl, cl
mov eax, dword [esp + 0x20]
add dword [esp + 0x14], ebx
add esi, 0xfffffff8
add edx, 0xfffffff8
jmp 0x41059a
add eax, 0x10
jmp 0x410579
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x174]
lea eax, [esp + 0x198]
mov dword [esp + 0x60], eax
push 0x20
pop eax
test edx, edx
mov esi, eax
je 0x4106af
bsr esi, edx
xor esi, 0x1f
sub eax, esi
push eax
push 0
lea eax, [esp + 0x68]
push eax
call fcn.00422a83
add esp, 0xc
cmp dword [esp + 0x14], 1
jle 0x41071b
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x16c]
sub ecx, 1
jb 0x4107a7
mov edx, ecx
shl edx, 4
mov esi, dword [eax + edx]
or esi, dword [eax + edx + 4]
jne 0x41071b
mov dword [esp + 0x174], ecx
movsd xmm0, qword [eax + edx]
movsd xmm1, qword [eax + edx + 8]
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
cmp dword [esp + 0x68], 0
je 0x41071b
lea ecx, [esp + 0x68]
call fcn.00415c23
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x16c]
test edi, edi
je 0x4107a7
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov dword [esp], ecx
jmp 0x4107b2
movsd xmm0, qword [esp + 0x64]
movsd xmm1, qword [esp + 0x6c]
lea ecx, [esp + 0x224]
movsd qword [esp + 0x2d8], xmm0
movsd qword [esp + 0x2e0], xmm1
call fcn.00415b56
movsd xmm0, qword [esp + 0x2d8]
movsd xmm1, qword [esp + 0x2e0]
movsd qword [esp + 0x4b8], xmm1
movsd qword [esp + 0x4b0], xmm0
movsd qword [esp + 0x234], xmm0
movsd qword [esp + 0x23c], xmm1
mov dword [esp + 0x230], 1
jmp 0x4109af
xor edi, edi
mov dword [esp], 0
xor ebx, ebx
shl edi, 4
xor ecx, ecx
xor esi, esi
add edi, eax
test cl, 1
jne 0x4107d6
mov ecx, edi
sub ecx, eax
shr ecx, 4
cmp ecx, esi
ja 0x4107cf
mov eax, edi
jmp 0x4107d6
shl esi, 4
lea eax, [eax + esi + 0x10]
cmp eax, edi
je 0x410808
mov dword [esp + 0x2d8], eax
mov esi, ebx
mov ecx, eax
mov ebx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp]
xor esi, ebx
xor eax, edx
or eax, esi
je 0x410924
add ecx, 0x10
xor esi, esi
mov dword [esp], edx
mov eax, ecx
dec esi
mov cl, 1
jmp 0x4107bb
lea eax, [esp + 0x160]
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x160], 4
and dword [esp + 0x164], 0
and dword [esp + 0x168], 0
mov dword [esp + 0x1a0], eax
movsd qword [esp + 0x198], xmm0
shl eax, 4
mov esi, dword [esp + 0x198]
add eax, esi
mov dword [esp + 0x30], eax
cmp eax, esi
je 0x410a00
mov ecx, dword [esi]
lea eax, [esi + 0x10]
mov dword [esp + 4], eax
add ecx, 8
call fcn.00416c52
mov ecx, dword [eax + 0x78]
mov ebx, dword [eax + 0x7c]
dec dword [edx]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 4]
mov dword [esp], ecx
shl eax, 3
test eax, eax
je 0x410917
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
mov edx, dword [eax + 8]
cmp edx, 5
push 4
pop ecx
cmovb edx, ecx
lea ecx, [esp + 0x60]
add edx, 7
and edx, 0xfffffff8
add edx, dword [edi]
push eax
call fcn.00422a49
pop eax
mov esi, dword [esp + 0x60]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x20], ebx
push ebx
push dword [esp + 4]
push esi
call dword [edi + 0x18]
add esp, 0xc
mov ebx, dword [edi + 0x10]
push esi
call ebx
pop ecx
mov dword [esp + 0x10], eax
lea eax, [esp + 0xe0]
push eax
push esi
call dword [edi + 0x20]
add esp, 8
push esi
call ebx
pop ecx
cmp eax, dword [esp + 0x10]
ja 0x410974
mov edi, dword [esp + 0x1c]
add edi, 8
push esi
call ebx
pop ecx
add dword [esp], eax
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
adc ebx, 0
inc dword [eax]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff8
jmp 0x41087e
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x30]
jmp 0x410851
xor ebx, ebx
lea edx, [esp + 0x60]
lea eax, [esp + 0x2d8]
lea esi, [esp + 0x238]
inc ebx
mov dword [edx], 0x4370f8
mov dword [esp + 0x198], eax
lea eax, [esp + 0x198]
mov ecx, esi
mov dword [esp + 0x19c], 0x422a71
mov dword [edx + 4], ebx
and dword [edx + 8], 0
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ebx
call fcn.00413248
mov dword [esi - 4], ebx
mov dword [esi - 8], ebx
jmp 0x4109af
mov eax, dword [esp + 0x68]
and dword [esp + 0x234], 0
mov dword [esp + 0x238], str.Internal_error
mov dword [esp + 0x23c], 0xe
mov dword [esp + 0x230], 1
lea ecx, [esp + 0x198]
inc dword [eax]
call fcn.004229d1
lea ecx, [esp + 0x160]
call fcn.004229d1
lea ecx, [esp + 0xe0]
call fcn.00415b40
lea ecx, [esp + 0x16c]
call fcn.004229e1
cmp dword [esp + 0x230], 1
jne 0x410a42
movsd xmm0, qword [esp + 0x234]
movsd xmm1, qword [esp + 0x23c]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x48], xmm1
jmp 0x410e01
lea esi, [esp + 0x160]
mov ecx, esi
call fcn.004229d1
mov eax, dword [esp + 0x1a0]
movsd xmm0, qword [esp + 0x198]
mov dword [esi + 8], eax
movsd qword [esi], xmm0
lea eax, [esp + 0x238]
push 0xa0
lea ecx, [esp + 0xe4]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x238]
lea esi, [esp + 0x5ac]
mov edi, 0xa0
push edi
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x390]
push edi
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x410]
mov esi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
shl eax, 4
mov dword [esp + 0x28], esi
add eax, esi
mov dword [esp + 0x24], eax
xor eax, eax
cmp eax, 0x1e
je 0x410be2
inc eax
mov edi, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x34], eax
cmp dword [esp + 0x24], edi
je 0x410bd3
mov ecx, dword [edi]
lea eax, [edi + 0x10]
mov dword [esp + 0x2c], eax
add ecx, 8
call fcn.00416c52
mov esi, dword [eax + 0x78]
mov eax, dword [eax + 0x7c]
dec dword [edx]
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov ebx, dword [edi + 4]
mov dword [esp], eax
mov eax, dword [edi + 0xc]
shl eax, 3
test eax, eax
je 0x410bc6
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 4]
mov edx, dword [eax + 8]
cmp edx, 5
push 4
pop ecx
cmovb edx, ecx
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x230]
add edx, 7
and edx, 0xfffffff8
add edx, dword [ebx]
push eax
call fcn.00422a49
pop eax
mov edi, dword [esp + 0x230]
mov ebx, dword [esp + 0x234]
push dword [esp]
mov dword [esp + 0x24], esi
push esi
push edi
call dword [ebx + 0x18]
add esp, 0xc
mov esi, dword [ebx + 0x10]
push edi
call esi
pop ecx
mov dword [esp + 0x14], eax
push dword [esp + 0xc]
push dword [esp + 0xc]
push edi
call dword [ebx + 0x24]
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x30], edi
push edi
mov dword [esp + 8], esi
call esi
pop ecx
test bl, bl
je 0x410b8b
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
sub ecx, eax
jb 0x410d92
jbe 0x410b99
add dword [esp + 8], ecx
mov eax, ecx
mov al, 1
mov dword [esp + 0x18], eax
adc dword [esp + 0xc], 0
jmp 0x410b99
cmp dword [esp + 0x14], eax
mov ebx, dword [esp + 0x10]
jne 0x410d92
add ebx, 8
push dword [esp + 0x30]
call dword [esp + 8]
add esp, 4
mov esi, dword [esp + 0x20]
add esi, eax
mov eax, dword [esp + 0x238]
adc dword [esp], 0
inc dword [eax]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff8
jmp 0x410ae8
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
jmp 0x410aa9
test byte [esp + 0x18], 1
mov esi, dword [esp + 0x28]
jne 0x410a91
mov edi, esi
cmp dword [esp + 0x24], edi
je 0x410eeb
mov ecx, dword [edi]
add ecx, 8
call fcn.00415a64
mov ecx, eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
test eax, eax
je 0x410c9d
mov ecx, dword [edi + 4]
mov dword [esp + 0x10], edi
mov edi, dword [ecx + eax*8 - 4]
mov ebx, dword [edi + 8]
cmp ebx, 5
push 4
pop edx
cmovb ebx, edx
add ebx, 7
and ebx, 0xfffffff8
add ebx, dword [ecx + eax*8 - 8]
lea ecx, [esp + 0xe0]
mov edx, ebx
push edi
call fcn.00415bf6
pop eax
mov eax, dword [esp + 0xe4]
push dword [esp + 0xe0]
call dword [eax + 0x14]
add esp, 4
mov esi, edx
mov edx, ebx
mov dword [esp], eax
lea ecx, [esp + 0x230]
push edi
mov edi, dword [esp + 0x14]
call fcn.00415bf6
pop eax
mov eax, dword [esp + 0x234]
push dword [esp + 0x230]
call dword [eax + 0x10]
add esp, 4
add eax, dword [esp]
mov ecx, dword [esp + 0x238]
mov edx, dword [esp + 0x20]
adc esi, 0
dec dword [ecx]
mov ecx, dword [esp + 0xe8]
dec dword [ecx]
jmp 0x410ca5
mov eax, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
mov edx, ecx
mov dword [edx + 0x88], eax
mov dword [edx + 0x8c], esi
add edi, 0x10
mov ebx, dword [edx + 0x80]
mov ecx, dword [edx + 0x84]
mov dword [esp + 0x10], edi
mov edi, 0
add eax, ebx
adc esi, ecx
add eax, 0xffffffff
adc esi, 0xffffffff
neg ebx
sbb edi, ecx
and ebx, eax
and edi, esi
mov dword [edx + 0x90], ebx
mov dword [esp + 0x14], ebx
mov dword [edx + 0x94], edi
mov dword [esp], edi
mov eax, dword [edx + 0xa4]
mov ecx, dword [edx + 0xac]
add edx, 0xb0
mov dword [esp + 4], edx
lea edi, [eax + ecx*4]
add eax, 0xfffffffc
lea esi, [eax + 4]
cmp esi, edi
je 0x410d83
mov ecx, dword [eax + 4]
add ecx, 8
call fcn.00416c52
mov al, byte [eax + 0x11]
dec dword [edx]
test al, al
mov eax, esi
je 0x410d0a
mov ecx, dword [esi]
add ecx, 8
call fcn.00415a64
mov ecx, dword [esp]
mov ebx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ebx
inc dword [edx]
mov ecx, dword [esi]
add ecx, 8
call fcn.00415a64
mov byte [eax + 0x10], 1
inc dword [edx]
mov ecx, esi
call fcn.0041560d
mov ecx, dword [esp + 4]
mov edx, eax
call fcn.00415bb5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
add ebx, dword [eax + 0x80]
adc ecx, dword [eax + 0x84]
add esi, 4
mov dword [esp + 0x14], ebx
mov eax, esi
mov dword [esp], ecx
jmp 0x410d07
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
inc dword [eax]
jmp 0x410be4
mov eax, dword [esp + 0x238]
and dword [esp + 0x40], 0
mov dword [esp + 0x44], str.Internal_error
mov dword [esp + 0x48], 0xe
mov dword [esp + 0x3c], 1
inc dword [eax]
lea esi, [esp + 0x410]
mov ecx, esi
call fcn.00424238
mov ecx, esi
call fcn.00415699
lea ecx, [esp + 0x398]
call fcn.004131a3
lea ecx, [esp + 0x3ac]
call fcn.004131a3
lea esi, [esp + 0x41c]
mov ecx, esi
call fcn.00423658
mov ecx, esi
call fcn.004156cb
cmp dword [esp + 0x3c], 1
jne 0x410e38
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
mov eax, dword [esp + 0x5c]
movsd qword [esp + 0x430], xmm0
movsd qword [esp + 0x438], xmm1
movsd qword [eax + 0xc], xmm1
movsd qword [eax + 4], xmm0
mov dword [eax], 1
jmp 0x40f5dd
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x4115c4
mov eax, dword [esp + 0x40]
lea edi, [esp + 0x474]
push 0xe
pop ecx
mov esi, eax
dec ebx
rep movsd dword es:[edi], dword [esi]
imul edx, ebx, 0x38
lea ecx, [eax + 0x38]
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x3c], 1
je 0x410e85
lea esi, [esp + 0x40]
mov ecx, esi
call fcn.00427482
mov ecx, esi
call fcn.004156b2
lea eax, [esp + 0x434]
push 0xe
pop edx
mov ecx, edx
mov edi, eax
lea esi, [esp + 0x474]
lea ebx, [esp + 0x358]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edi, ebx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x5c]
movsd xmm0, qword [ebx + 8]
mov dword [ecx + 0xc], eax
movsd qword [ecx + 4], xmm0
and dword [ecx], 0
lea ecx, [esp + 0x36c]
call fcn.00415680
lea ecx, [esp + 0x378]
call fcn.0041564e
lea ecx, [esp + 0x384]
call fcn.00415667
jmp 0x40f5dd
push 0x38
pop ecx
mov eax, dword [esp + 0x38]
mul ecx
jo 0x4115a8
mov esi, eax
test eax, eax
js 0x4115a8
push 8
pop edx
mov ecx, esi
call fcn.00415068
test eax, eax
je 0x4115c0
lea ecx, [esp + 0x2d8]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
and dword [ecx + 8], 0
cmp dword [esp + 0x24], eax
je 0x411569
mov ecx, dword [eax]
mov dword [esp + 0x28], eax
add ecx, 8
call fcn.00415a64
mov ecx, dword [esp + 0x40c]
mov ebx, dword [eax + 0x78]
mov edi, dword [eax + 0x7c]
mov dword [esp + 0x34], edx
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
test cl, 4
push 4
pop eax
mov esi, 0
je 0x410fa5
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0xc]
mov eax, esi
push 4
pop ecx
mul ecx
jo 0x4115a8
test eax, eax
js 0x4115a8
mov dword [esp + 0x20], eax
mov ecx, eax
push 4
pop edx
call fcn.00415068
test eax, eax
je 0x4115cb
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], esi
and dword [esp + 0x1a0], 0
test byte [esp + 0x14], 8
mov eax, 1
je 0x410ff8
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
push 8
pop ecx
mul ecx
jo 0x4115a8
mov esi, eax
test eax, eax
js 0x4115a8
xor edx, edx
mov ecx, esi
inc edx
call fcn.00415068
test eax, eax
je 0x4115d4
mov edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], edx
mov dword [esp + 0x18], edx
lea ecx, [eax + 0x10]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp]
mov dword [esp + 0x64], ecx
and dword [esp + 0x68], 0
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], ecx
shl eax, 3
xor ecx, ecx
mov esi, dword [esp + 0x10]
test eax, eax
mov dword [esp], ecx
mov dword [esp + 0x1c], eax
je 0x4111d6
mov dword [esp + 8], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x30], ebx
mov eax, dword [edi + 4]
mov edx, dword [eax + 8]
cmp edx, 5
push 4
pop ecx
cmovb edx, ecx
lea ecx, [esp + 0xe0]
add edx, 7
and edx, 0xfffffff8
add edx, dword [edi]
push eax
call fcn.00422a49
pop eax
test byte [esp + 0x14], 8
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
jne 0x4110ba
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
push esi
push edi
lea eax, [esp + 0x238]
push eax
call dword [ebx + 0x28]
add esp, 0xc
cmp byte [esp + 0x230], 1
je 0x4114af
mov al, byte [esp + 0x239]
mov ecx, dword [esp + 4]
mov byte [esp + 0xc], al
jmp 0x411144
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
push esi
push edi
lea eax, [esp + 0x238]
push eax
call dword [ebx + 0x28]
add esp, 0xc
cmp byte [esp + 0x230], 1
je 0x4114af
mov eax, dword [esp + 0x235]
mov edx, dword [esp]
mov esi, dword [esp + 0x231]
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x239]
cmp edx, dword [esp + 0x64]
mov byte [esp + 0xc], al
mov eax, dword [esp + 0x18]
jne 0x411121
lea ecx, [esp + 0x60]
call fcn.0041549d
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
mov dword [eax + edx*8], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 4]
mov dword [eax + edx*8 + 4], esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
inc eax
mov dword [esp], eax
mov dword [esp + 0x68], eax
mov esi, dword [esi + 0x10]
sub esi, ecx
push edi
call dword [ebx + 0x10]
add esp, 4
cmp esi, eax
jne 0x4114e5
test byte [esp + 0x14], 4
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp]
je 0x4111b3
test byte [esp + 0xc], 1
mov edi, 0xffffffff
je 0x41117b
mov eax, dword [esp + 0x10]
mov edi, ebx
sub edi, dword [eax + 0x78]
mov edx, dword [esp + 0x1a0]
cmp edx, dword [esp + 0x19c]
jne 0x41119e
lea ecx, [esp + 0x198]
call fcn.0041514c
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x198]
mov ecx, dword [esp]
mov dword [eax + edx*4], edi
inc edx
mov dword [esp + 0x1a0], edx
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xe8]
add dword [esp + 0x20], 8
add ebx, esi
adc edi, 0
inc dword [eax]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff8
jmp 0x411028
cmp dword [esi + 0xb8], 0
je 0x411350
mov eax, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
sub eax, dword [esi + 0x88]
sbb edi, dword [esi + 0x8c]
xor ebx, ebx
xor esi, esi
mov dword [esp], eax
cmp ebx, dword [esp]
mov eax, esi
sbb eax, edi
jae 0x411221
mov ecx, dword [esp + 0x10]
add ebx, 1
mov edx, 0xcc
adc esi, 0
call fcn.00416c68
jmp 0x411202
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x80]
xor eax, 8
or eax, dword [esi + 0x84]
jne 0x4115a8
mov eax, dword [esi + 0xb0]
lea ecx, [esi + 0x98]
mov dword [esp + 0x1c], ecx
mov dword [esp], eax
mov eax, dword [esi + 0xb8]
shl eax, 2
test eax, eax
je 0x411350
mov dword [esp + 0x20], eax
mov eax, dword [esp]
mov ecx, dword [eax]
add ecx, 8
call fcn.00416c52
mov esi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
test eax, eax
je 0x4112d5
cmp byte [esi + 0x11], 0
je 0x411540
cmp byte [esi + 0x10], 0
je 0x411540
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov edx, dword [edi + 0xa0]
cmp edx, dword [edi + 0x9c]
jne 0x4112c8
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
call fcn.00415387
mov ecx, dword [esp + 4]
mov eax, dword [edi + 0x98]
mov edx, dword [edi + 0xa0]
mov dword [eax + edx*8], ecx
mov dword [eax + edx*8 + 4], ebx
inc dword [edi + 0xa0]
mov edi, dword [esi]
mov ebx, dword [esp + 0x10]
add dword [esp], 4
mov esi, dword [esi + 4]
mov ecx, ebx
mov edx, edi
call fcn.00416c68
mov edx, edi
mov ecx, ebx
shr edx, 8
call fcn.00416c68
mov edx, edi
mov ecx, ebx
shr edx, 0x10
call fcn.00416c68
shr edi, 0x18
mov ecx, ebx
mov edx, edi
call fcn.00416c68
mov ecx, ebx
mov edx, esi
call fcn.00416c68
mov edx, esi
mov ecx, ebx
shr edx, 8
call fcn.00416c68
mov edx, esi
mov ecx, ebx
shr edx, 0x10
call fcn.00416c68
shr esi, 0x18
mov ecx, ebx
mov edx, esi
mov esi, ebx
call fcn.00416c68
mov eax, dword [esp + 0x14]
dec dword [eax]
mov eax, dword [esp + 0x20]
add eax, 0xfffffffc
jmp 0x411256
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x7c]
mov ebx, dword [esi + 0x78]
mov dword [esp + 0x238], ecx
mov dword [esp], eax
movsd xmm0, qword [esi + 8]
movsd qword [esp + 0x230], xmm0
mov dword [esi + 8], 1
and dword [esi + 0xc], 0
and dword [esi + 0x10], 0
mov edi, dword [esi + 0x98]
and dword [esi + 0x98], 0
test edi, edi
je 0x4113a7
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edi
mov edi, dword [eax + 0xa0]
mov esi, dword [eax + 0x9c]
jmp 0x4113b0
push 8
pop eax
mov dword [esp + 0x20], eax
mov esi, edi
mov edx, dword [esp + 0x2e0]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x238]
movsd xmm0, qword [esp + 0x230]
cmp edx, dword [esp + 0x2dc]
lea eax, [eax + 0xb0]
mov dword [esp + 0xe8], ecx
movsd qword [esp + 0xe0], xmm0
mov dword [esp + 0x14], eax
jne 0x411401
lea ecx, [esp + 0x2d8]
call fcn.004152e3
mov edx, dword [esp + 0x2e0]
mov eax, dword [esp + 0x2d8]
imul ecx, edx, 0x38
inc edx
mov dword [eax + ecx], ebx
mov ebx, dword [esp]
mov dword [eax + ecx + 4], ebx
mov ebx, dword [esp + 0xe8]
mov dword [eax + ecx + 0x10], ebx
mov ebx, dword [esp + 0x20]
movsd xmm0, qword [esp + 0xe0]
movsd qword [eax + ecx + 8], xmm0
mov dword [eax + ecx + 0x14], ebx
mov dword [eax + ecx + 0x1c], edi
mov dword [eax + ecx + 0x18], esi
mov esi, dword [esp + 0x1a0]
mov dword [eax + ecx + 0x28], esi
movsd xmm0, qword [esp + 0x198]
movsd qword [eax + ecx + 0x20], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [eax + ecx + 0x2c], xmm0
mov esi, dword [esp + 0x68]
mov dword [eax + ecx + 0x34], esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2e0], edx
add ecx, 0xa4
call fcn.004274bf
mov ecx, dword [esp + 0x14]
call fcn.004274bf
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
and dword [eax + 0xc], 0
call fcn.0042427d
mov eax, dword [esp + 0x34]
inc dword [eax]
mov eax, dword [esp + 0x38]
jmp 0x410f2e
movsd xmm0, qword [esp + 0x23a]
movzx eax, word [esp + 0x238]
mov ecx, dword [esp + 0x234]
movzx edx, word [esp + 0x242]
movsd qword [esp + 0x46], xmm0
mov word [esp + 0x4e], dx
mov dword [esp + 0x40], ecx
mov word [esp + 0x44], ax
jmp 0x4114fa
and dword [esp + 0x40], 0
mov dword [esp + 0x44], str.Internal_error
mov dword [esp + 0x48], 0xe
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], 1
inc dword [eax]
lea ecx, [esp + 0x60]
call fcn.00415667
lea ecx, [esp + 0x198]
call fcn.0041564e
inc dword [esi]
lea esi, [esp + 0x2d8]
mov ecx, esi
call fcn.00427482
mov ecx, esi
call fcn.004156b2
jmp 0x410db8
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
dec dword [eax]
and dword [esp + 0x40], 0
mov dword [esp + 0x48], 0xe
mov dword [esp + 0x44], str.Internal_error
mov dword [esp + 0x3c], 1
jmp 0x41150f
mov ecx, dword [esp + 0x41c]
mov edx, dword [esp + 0x424]
and dword [esp + 0x424], 0
call fcn.00423665
mov eax, dword [esp + 0x2e0]
movsd xmm0, qword [esp + 0x2d8]
mov dword [esp + 0x48], eax
movsd qword [esp + 0x40], xmm0
and dword [esp + 0x3c], 0
jmp 0x410db8
ud2
push 4
pop edx
mov ecx, esi
call fcn.0042ef53
ud2
push 0x10
pop ecx
push 4
pop edx
jmp 0x4115b1
push 8
jmp 0x4115ae
call 0x427264
ud2
push 4
pop edx
mov ecx, dword [esp + 0x20]
jmp 0x4115b1
xor edx, edx
inc edx
jmp 0x4115af