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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x330
mov dword [esp + 0x114], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1fc], edx
push 4
pop eax
lea ebx, [esp + 0x20]
mov dword [esp + 0x144], eax
and dword [esp + 0x148], 0
and dword [esp + 0x14c], 0
mov edx, dword [ecx + 0x14]
mov ecx, ebx
call fcn.00419663
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 8]
cmp dword [ebx], 1
push 0x20
pop eax
jne 0x4171bf
lea ecx, [esp + 0x144]
call fcn.004052a2
lea ecx, [esp + 0x20]
mov dword [ecx], esi
mov dword [ecx + 4], edi
push 4
pop eax
mov dword [esp + 0x1b8], eax
and dword [esp + 0x1bc], 0
and dword [esp + 0x1c0], 0
call fcn.004051e6
jmp 0x417f19
lea ecx, [esp + 0x19c]
mov edx, esi
mov dword [ecx], esi
mov esi, dword [ebp + 8]
mov dword [ecx + 4], edi
lea edi, [esp + 0xf8]
mov ecx, edi
push dword [esi + 0x14]
mov ebx, eax
call fcn.00419b14
pop eax
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
lea esi, [esp + 0x1dc]
lea edi, [esp + 0x20]
mov ecx, esi
mov edx, edi
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0040f780
mov ecx, dword [esi + 8]
movsd xmm0, qword [esi]
lea eax, [esp + 0x16c]
mov dword [eax], 1
movsd qword [eax + 4], xmm0
mov dword [eax + 0xc], ecx
and dword [eax + 0x10], 0
and dword [eax + 0x20], 0
mov dword [esp + 0x124], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x120], ecx
push 4
pop edx
lea ecx, [eax + edx]
mov dword [esp + 0x160], ecx
push 0x10
pop ecx
lea ecx, [eax + ecx]
lea eax, [eax + ebx]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x164], eax
push 0x10
pop eax
lea ecx, [edi + edx]
lea esi, [esp + 0xb8]
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x244]
lea ecx, [ecx + edx]
add edx, esi
mov dword [esp + 0x168], ecx
mov dword [esp + 0x70], edx
xor edx, edx
lea ecx, [edi + eax]
add edi, ebx
lea eax, [esi + eax]
lea ebx, [esp + 0x78]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x118], edi
mov dword [esp + 0xf4], eax
test edx, edx
je 0x417314
mov esi, dword [esp + 0x184]
cmp esi, dword [esp + 0x188]
je 0x4172f3
lea eax, [esi + 0x34]
mov dword [esp + 0x184], eax
push 0xd
pop ecx
lea edi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x20]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4172fc
push 0xc
pop ecx
mov esi, dword [esp + 0x60]
lea edi, [esp + 0x200]
rep movsd dword es:[edi], dword [esi]
jmp 0x4173ad
and dword [esp + 0x20], 0
lea edi, [esp + 0x20]
mov ecx, dword [esp + 0x6c]
call fcn.0040545d
and dword [esp + 0x17c], 0
mov ecx, edi
call fcn.00405b77
mov eax, dword [esp + 0x170]
and dword [esp + 0x170], 0
test eax, eax
je 0x417366
imul esi, dword [esp + 0x124], 0x34
mov ecx, dword [esp + 0x6c]
mov edi, eax
add esi, eax
call fcn.0040545d
mov eax, dword [esp + 0x120]
mov dword [esp + 0x17c], edi
mov edx, edi
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], edi
mov dword [esp + 0x188], esi
jmp 0x4172ab
cmp dword [esp + 0x18c], 0
je 0x417ece
mov esi, dword [esp + 0x194]
cmp esi, dword [esp + 0x198]
je 0x417ece
lea eax, [esi + 0x34]
mov dword [esp + 0x194], eax
mov eax, dword [esi]
add esi, 4
push 0xc
pop ecx
lea edi, [esp + 0x200]
xor edx, edx
test eax, eax
rep movsd dword es:[edi], dword [esi]
je 0x417ece
mov dword [esp + 0xec], edx
push 0xc
pop ecx
lea edx, [esp + 0x2fc]
lea esi, [esp + 0x200]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x244], eax
push 0xc
pop ecx
mov edi, dword [esp + 0x168]
mov esi, edx
lea eax, [0x442d68]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], eax
mov ecx, 0xffff50e1
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459d54]
push ecx
push 8
pop ecx
push ecx
lea edi, [esp + 0x28]
push edi
call eax
add esp, 0xc
lea ecx, [esp + 0x250]
mov edx, edi
push 8
pop eax
push eax
call fcn.0040b252
pop ecx
test al, al
je 0x4177d1
mov ecx, edi
lea edx, [esp + 0x244]
call fcn.0042c39a
lea esi, [esp + 0x2bc]
mov edx, edi
mov ecx, esi
call fcn.0041bdb1
cmp dword [esp + 0x2bc], 0
je 0x417e83
push 0x10
pop ecx
mov ebx, edi
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x200]
mov ecx, esi
push 0x459e64
call fcn.00406718
pop eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x128]
lea edx, [esp + 0x19c]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x20], esi
push 0x459e74
push ebx
push dword [esp + 0x238]
push eax
call fcn.004198f1
add esp, 0x10
movsd xmm0, qword [esp + 0x128]
movsd xmm1, qword [esp + 0x130]
lea ecx, [esp + 0xac]
mov edx, ebx
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0040f739
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x60]
movsd xmm0, qword [esp + 0xac]
mov dword [esp + 0x20], 1
xor esi, esi
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
and dword [esp + 0x30], 0
and dword [esp + 0x40], 0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
push 4
pop ebx
test esi, esi
je 0x41776b
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x3c]
je 0x417749
lea ecx, [eax + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, 0xffffc66e
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x90], eax
lea eax, [0x43b7db]
movsd qword [esp + 0x88], xmm0
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459e0c]
push ecx
push ebx
lea ecx, [esp + 0x1f0]
push ecx
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x88]
push ebx
lea eax, [esp + 0x1ec]
push eax
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x417591
and dword [esp + 0x108], 0
jmp 0x4175c1
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x108]
lea edx, [esp + 0xb8]
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3d3
lea eax, [0x44173f]
mov ecx, 0xffff670a
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459df3]
push ecx
push 5
pop ebx
push ebx
lea ecx, [esp + 0x1f0]
push ecx
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x88]
push ebx
lea eax, [esp + 0x1ec]
push eax
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], ebx
jne 0x41761e
and dword [esp + 0x138], 0
xor eax, eax
jmp 0x417655
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x138]
lea edx, [esp + 0xb8]
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3d3
mov eax, dword [esp + 0x138]
test eax, eax
je 0x41771d
cmp dword [esp + 0x108], 0
je 0x41771d
mov eax, dword [esp + 0x110]
movsd xmm0, qword [esp + 0x108]
mov ebx, esp
lea ecx, [esp + 0xa0]
mov edx, ebx
mov dword [esp + 8], eax
movsd qword [esp], xmm0
push 0x459ea0
call fcn.00406645
pop eax
mov eax, dword [esp + 0x140]
movsd xmm0, qword [esp + 0x138]
lea ecx, [esp + 0x1e8]
mov edx, ebx
mov dword [esp + 8], eax
movsd qword [esp], xmm0
push 0x459eb0
call fcn.00406645
pop eax
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x70]
movsd xmm0, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0x1e8]
lea edx, [esp + 0xb8]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x1f0]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm1
and dword [esp + 0xb8], 0
lea ecx, [esp + 0x144]
call fcn.0040a196
jmp 0x417735
lea ecx, [esp + 0x138]
call fcn.00405348
lea ecx, [esp + 0x108]
call fcn.00405348
push 4
pop ebx
lea ecx, [esp + 0x88]
call fcn.004056dc
jmp 0x417504
mov ecx, dword [esp + 0x10]
and dword [esp + 0xb8], 0
call fcn.0040569f
and dword [esp + 0x30], 0
lea ecx, [esp + 0xb8]
call fcn.004054e4
mov esi, dword [esp + 0x24]
and dword [esp + 0x24], 0
test esi, esi
je 0x41779f
mov ecx, dword [esp + 0x10]
imul ebx, edi, 0xc
add ebx, esi
call fcn.0040569f
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebx
jmp 0x417501
mov ecx, dword [esp + 0x60]
call fcn.004051b5
mov ecx, dword [esp + 0x10]
call fcn.0040569f
mov ecx, dword [esp + 0x118]
call fcn.0040569f
lea ecx, [esp + 0x200]
call fcn.0040501a
lea edi, [esp + 0x20]
lea ebx, [esp + 0x78]
lea eax, [0x442ed3]
mov ecx, 0xffff4f76
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459d38]
push ecx
push 0xc
pop esi
push esi
push edi
call eax
add esp, 0xc
lea ecx, [esp + 0x250]
mov edx, edi
push esi
call fcn.0040b252
pop ecx
test al, al
je 0x417eb6
lea edi, [esp + 0x20]
lea edx, [esp + 0x244]
mov ecx, edi
call fcn.0042c39a
lea esi, [esp + 0x2bc]
mov edx, edi
mov ecx, esi
call fcn.0041bdb1
cmp dword [esp + 0x2bc], 0
je 0x417e83
push 0x10
pop ecx
lea edi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x20]
lea esi, [esp + 0x200]
mov ecx, esi
mov edx, edi
push 0x459ed0
call fcn.00406718
pop eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x1e8]
lea edx, [esp + 0x19c]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x20], esi
push 0x459ee0
push edi
push dword [esp + 0x238]
push eax
call fcn.004198f1
add esp, 0x10
movsd xmm0, qword [esp + 0x1e8]
movsd xmm1, qword [esp + 0x1f0]
lea ecx, [esp + 0x1d0]
mov edx, edi
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0040f739
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x60]
movsd xmm0, qword [esp + 0x1d0]
mov dword [esp + 0x20], 1
xor edi, edi
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
and dword [esp + 0x30], 0
and dword [esp + 0x40], 0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov esi, ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x11c], edx
mov dword [esp + 0x64], ecx
test edi, edi
je 0x417e11
cmp esi, dword [esp + 0x3c]
je 0x417e1b
mov eax, dword [esi + 8]
movsd xmm0, qword [esi]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
mov ecx, 0xffffecf5
mov dword [esp + 0x80], eax
lea eax, [0x439154]
movsd qword [esp + 0x78], xmm0
mov dword [esp], eax
mov eax, dword [esp]
add eax, ecx
lea ecx, [0x459c47]
push ecx
push 0x15
pop edi
push edi
lea esi, [esp + 0xc0]
push esi
call eax
add esp, 0xc
lea ecx, [esp + 0x128]
mov edx, ebx
push edi
push esi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp + 0x128], 5
jne 0x41798d
and dword [esp + 0xac], 0
jmp 0x417a32
movsd xmm0, qword [esp + 0x128]
movsd xmm1, qword [esp + 0x130]
lea ecx, [esp + 0xac]
mov edx, esp
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call fcn.0041c3af
mov eax, dword [esp + 0xac]
test eax, eax
je 0x417a32
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 8]
lea ebx, [esp + 0xb8]
lea edi, [esp + 0x88]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edx
mov ecx, ebx
mov edx, dword [eax + 0x18]
push edi
push dword [eax + 0x20]
call fcn.00410974
pop eax
pop ecx
cmp dword [esp + 0xb8], 1
mov esi, dword [esp + 0x14]
jne 0x417a4b
lea ecx, [esp + 0x108]
mov edx, 0x461f70
push 0
call fcn.0043571c
pop eax
mov ecx, ebx
call fcn.00405b50
jmp 0x417a66
lea ecx, [esp + 0xac]
call fcn.00405a85
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x417dfe
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x110], eax
movsd qword [esp + 0x108], xmm0
push 0xc
lea eax, [0x43ebca]
pop edi
mov ecx, 0xffff927f
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459d8c]
push ecx
push edi
lea ebx, [esp + 0x130]
push ebx
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x78]
push edi
push ebx
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x417abf
and dword [esp + 0xa0], 0
lea edi, [esp + 0xa0]
jmp 0x417af1
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea edi, [esp + 0xa0]
lea edx, [esp + 0xb8]
mov ecx, edi
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3d3
lea ebx, [esp + 0xb8]
mov edx, 0x461f70
mov ecx, ebx
push 0
call fcn.0043571c
pop eax
lea ecx, [esp + 0x138]
mov edx, edi
push ebx
call fcn.00406780
pop eax
lea eax, [0x43c5aa]
mov ecx, 0xffffb89f
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459d18]
push ecx
push 0x10
pop ecx
push ecx
lea edi, [esp + 8]
push edi
call eax
add esp, 0xc
lea ecx, [esp + 0x128]
lea edx, [esp + 0x78]
push 0x10
pop eax
push eax
push edi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp + 0x128], 5
mov edi, 0
mov eax, 0
mov dword [esp + 0x1c], 0
je 0x417bd8
movsd xmm0, qword [esp + 0x128]
movsd xmm1, qword [esp + 0x130]
lea ecx, [esp + 0x298]
lea edx, [esp + 0xb8]
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3f7
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x298]
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x74], eax
lea eax, [0x440d20]
mov ecx, 0xffff7129
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459d4d]
push ecx
push 0xf
pop ebx
push ebx
lea ecx, [esp + 0x130]
push ecx
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x78]
push ebx
lea eax, [esp + 0x12c]
push eax
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
mov ebx, 0
je 0x417c8e
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x288]
lea edx, [esp + 0xb8]
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3f7
mov eax, dword [esp + 0x294]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x290]
mov dword [esp + 0x98], eax
mov ebx, dword [esp + 0x288]
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0xa0]
mov edx, 0x461f70
push 0
call fcn.0043571c
pop eax
xor edi, 1
or edi, dword [esp + 0x74]
jne 0x417d7f
xor ebx, 1
or ebx, dword [esp + 0x1c]
jne 0x417d7f
mov eax, dword [esp + 0x9c]
lea ecx, [esp + 0x1a8]
mov dword [esp + 0xb8], 0x459f4c
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0x150]
mov dword [esp], eax
mov eax, 0x433720
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
push 2
pop ecx
mov eax, esp
lea edx, [esp + 0xb8]
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
lea ecx, [esp + 0x128]
call fcn.0042e970
lea ecx, [esp + 0xa0]
call fcn.00435706
mov eax, dword [esp + 0x130]
movsd xmm0, qword [esp + 0x128]
mov dword [esp + 0xa8], eax
movsd qword [esp + 0xa0], xmm0
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x108]
lea edx, [esp + 0xb8]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0xf4]
movsd xmm0, qword [esp + 0x138]
movsd qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa0]
mov dword [edx + 0x24], ecx
lea ecx, [esp + 0x144]
movsd qword [edx + 0x1c], xmm0
mov dword [esp + 0xb8], 1
call fcn.0040a196
lea ecx, [esp + 0x88]
call fcn.00435706
mov edi, dword [esp + 0x18]
lea ebx, [esp + 0x78]
mov ecx, ebx
add esi, 0xc
call fcn.004056dc
jmp 0x41790b
mov eax, dword [esp + 0x64]
mov dword [esp + 0x38], eax
jmp 0x417e41
mov ecx, dword [esp + 0x10]
and dword [esp + 0xb8], 0
mov dword [esp + 0x38], esi
call fcn.0040569f
and dword [esp + 0x30], 0
lea ecx, [esp + 0xb8]
call fcn.004054e4
mov edi, dword [esp + 0x24]
and dword [esp + 0x24], 0
test edi, edi
je 0x417e8c
imul esi, dword [esp + 0x11c], 0xc
mov ecx, dword [esp + 0x10]
add esi, edi
call fcn.0040569f
mov eax, dword [esp + 0x94]
mov dword [esp + 0x30], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov esi, edi
jmp 0x41790b
mov ecx, esi
call fcn.004054d4
jmp 0x417eb6
mov ecx, dword [esp + 0x60]
call fcn.004051b5
mov ecx, dword [esp + 0x10]
call fcn.0040569f
mov ecx, dword [esp + 0x118]
call fcn.0040569f
lea ecx, [esp + 0x200]
call fcn.0040501a
lea ecx, [esp + 0x244]
call fcn.004055cc
mov edx, dword [esp + 0xec]
jmp 0x4172ab
mov ecx, dword [esp + 0x160]
call fcn.00405a32
mov ecx, dword [esp + 0x6c]
call fcn.0040545d
mov ecx, dword [esp + 0x164]
call fcn.0040545d
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], edx
mov ecx, dword [ebp + 8]
push 8
pop eax
lea edi, [esp + 0x20]
mov dword [esp + 0x19c], eax
and dword [esp + 0x1a0], 0
and dword [esp + 0x1a4], 0
mov edx, dword [ecx + 0xc]
mov ecx, edi
call fcn.00419663
mov esi, dword [edi + 4]
mov ebx, dword [edi + 8]
cmp dword [edi], 1
jne 0x417f88
lea ecx, [esp + 0x19c]
call fcn.00405228
lea ecx, [esp + 0x20]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
push 8
pop eax
mov dword [esp + 0x1c4], eax
and dword [esp + 0x1c8], 0
and dword [esp + 0x1cc], 0
call fcn.004051e6
jmp 0x418be9
lea eax, [esp + 0x2a8]
lea edi, [esp + 0x1e8]
mov edx, esi
mov dword [eax], esi
mov dword [eax + 4], ebx
mov eax, dword [ebp + 8]
mov ecx, edi
push dword [eax + 0xc]
call fcn.00419b14
pop eax
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
lea esi, [esp + 0x2b0]
lea edi, [esp + 0x20]
lea eax, [esp + 0x28]
mov ecx, esi
mov edx, edi
movsd qword [eax], xmm1
movsd qword [eax - 8], xmm0
call fcn.0040f780
mov ecx, dword [esi + 8]
movsd xmm0, qword [esi]
lea eax, [esp + 0xb8]
mov dword [eax], 1
movsd qword [eax + 4], xmm0
mov dword [eax + 0xc], ecx
and dword [eax + 0x10], 0
and dword [eax + 0x20], 0
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x16c]
push 4
pop ebx
lea edx, [ecx + ebx]
mov dword [esp + 0x118], edx
push 0x10
pop edx
lea esi, [ecx + edx]
mov dword [esp + 0x94], esi
push 0x20
pop esi
lea ecx, [ecx + esi]
mov dword [esp + 0x164], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x124], ecx
lea ecx, [eax + ebx]
mov dword [esp + 0x1f8], ecx
lea ecx, [eax + edx]
add eax, esi
xor edx, edx
mov dword [esp + 0x160], eax
lea eax, [edi + ebx]
mov dword [esp + 0x98], ecx
lea ecx, [edi + esi]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x244]
mov dword [esp + 0x120], ecx
add eax, ebx
mov dword [esp + 0x168], eax
test edx, edx
je 0x4180e7
mov esi, dword [esp + 0xd0]
cmp esi, dword [esp + 0xd4]
je 0x4180c3
lea eax, [esi + 0x34]
mov dword [esp + 0xd0], eax
push 0xd
pop ecx
lea edi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x20]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4180cc
push 0xc
pop ecx
mov esi, dword [esp + 0xf0]
lea edi, [esp + 0x200]
rep movsd dword es:[edi], dword [esi]
jmp 0x418180
and dword [esp + 0x20], 0
lea edi, [esp + 0x20]
mov ecx, dword [esp + 0x98]
call fcn.0040545d
and dword [esp + 0xc8], 0
mov ecx, edi
call fcn.00405b77
mov eax, dword [esp + 0xbc]
and dword [esp + 0xbc], 0
test eax, eax
je 0x418139
imul esi, dword [esp + 0x10], 0x34
mov ecx, dword [esp + 0x98]
mov edi, eax
add esi, eax
call fcn.0040545d
mov eax, dword [esp + 0x124]
mov dword [esp + 0xc8], edi
mov edx, edi
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], esi
jmp 0x418078
cmp dword [esp + 0xd8], 0
je 0x418b9b
mov esi, dword [esp + 0xe0]
cmp esi, dword [esp + 0xe4]
je 0x418b9b
lea eax, [esi + 0x34]
mov dword [esp + 0xe0], eax
mov eax, dword [esi]
add esi, 4
push 0xc
pop ecx
lea edi, [esp + 0x200]
xor edx, edx
test eax, eax
rep movsd dword es:[edi], dword [esi]
je 0x418b9b
mov dword [esp + 0x60], edx
push 0xc
pop edx
lea edi, [esp + 0x2fc]
lea esi, [esp + 0x200]
mov ecx, edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x244], eax
mov ecx, edx
lea esi, [esp + 0x2fc]
lea eax, [0x4416ff]
mov edi, dword [esp + 0x168]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], eax
mov ecx, 0xffff674a
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459c05]
push ecx
push 7
pop esi
push esi
lea edi, [esp + 0x28]
push edi
call eax
add esp, 0xc
lea ecx, [esp + 0x250]
mov edx, edi
push esi
call fcn.0040b252
pop ecx
test al, al
je 0x418b3d
push 0xd
pop ecx
lea edi, [esp + 0x20]
lea esi, [esp + 0x244]
lea edx, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x2bc]
mov ecx, esi
call fcn.0041bdb1
cmp dword [esp + 0x2bc], 0
je 0x418b8b
push 0x10
pop ecx
lea edi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x20]
lea esi, [esp + 0x200]
mov ecx, esi
mov edx, edi
push 0x459cf4
call fcn.00406718
pop eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x128]
lea edx, [esp + 0x2a8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], esi
push 0x459d04
push edi
push dword [esp + 0x238]
push eax
call fcn.004198f1
add esp, 0x10
movsd xmm0, qword [esp + 0x128]
movsd xmm1, qword [esp + 0x130]
lea ecx, [esp + 0x1d0]
mov edx, edi
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0040f739
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x118]
movsd xmm0, qword [esp + 0x1d0]
mov dword [esp + 0x16c], 1
xor edi, edi
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
and dword [esp + 0x17c], 0
and dword [esp + 0x18c], 0
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x174]
mov edx, dword [esp + 0x178]
mov esi, ecx
mov dword [esp + 0x11c], eax
mov dword [esp + 0xec], edx
mov dword [esp + 0x64], ecx
test edi, edi
je 0x418ab0
cmp esi, dword [esp + 0x188]
je 0x418abd
mov eax, dword [esi + 8]
movsd xmm0, qword [esi]
mov dword [esp + 0x74], edi
mov dword [esp + 0x18], esi
mov ecx, 0xffff3068
mov dword [esp + 0x158], eax
lea eax, [0x444de1]
movsd qword [esp + 0x150], xmm0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459c18]
push ecx
push 8
pop esi
push esi
lea edi, [esp + 0x100]
push edi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push esi
push edi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x418388
and dword [esp + 0x1a8], 0
jmp 0x4183af
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c3d3
lea eax, [0x43e167]
mov ecx, 0xffff9ce2
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459bc1]
push ecx
push 0xb
pop edi
push edi
lea esi, [esp + 0x100]
push esi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push edi
push esi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
mov al, 2
je 0x418416
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c43e
mov byte [esp + 0x14], al
lea eax, [0x4469d6]
mov ecx, 0xffff1473
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459cb8]
push ecx
push ebx
lea esi, [esp + 0x100]
push esi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push ebx
push esi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x418466
and dword [esp + 0x144], 0
jmp 0x41848d
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x144]
lea edx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c3d3
lea eax, [0x43dea5]
mov ecx, 0xffff9fa4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459c1b]
push ecx
push 9
pop edi
push edi
lea esi, [esp + 0x100]
push esi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push edi
push esi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
mov byte [esp + 0x1c], 2
je 0x4184fb
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c43e
mov byte [esp + 0x1c], al
lea eax, [0x441481]
mov ecx, 0xffff69c8
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459be9]
push ecx
push 0xb
pop edi
push edi
lea esi, [esp + 0x100]
push esi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push edi
push esi
call fcn.0040853e
pop eax
pop ecx
xor edi, edi
cmp dword [esp], 5
mov eax, 0
je 0x418595
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x278]
lea edx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c3f7
mov eax, dword [esp + 0x284]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x280]
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x27c]
mov dword [esp + 0xf4], eax
lea eax, [0x43c8bf]
mov ecx, 0xffffb58a
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459ce0]
push ecx
push ebx
lea esi, [esp + 0x100]
push esi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push ebx
push esi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x4185e8
and dword [esp + 0x1dc], 0
jmp 0x41860f
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x1dc]
lea edx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c3d3
lea eax, [0x4409fd]
mov ecx, 0xffff744c
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459cc7]
push ecx
push 5
pop esi
push esi
lea ebx, [esp + 0x100]
push ebx
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push esi
push ebx
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], esi
jne 0x41865a
and dword [esp + 0x78], 0
jmp 0x41867e
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x78]
lea edx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c3d3
lea eax, [0x4459c9]
mov ecx, 0xffff2480
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459b89]
push ecx
push 0xf
pop esi
push esi
lea ebx, [esp + 0x100]
push ebx
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x150]
push esi
push ebx
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x4186cd
and dword [esp + 0xac], 0
jmp 0x4186f4
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0xac]
lea edx, [esp + 0x20]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0041c3af
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x78]
mov esi, dword [eax + 0x18]
mov ebx, dword [eax + 0x20]
test ecx, ecx
je 0x418752
mov edx, dword [esp + 0x80]
push 0
push 0x461f70
call fcn.00405da1
pop ecx
pop edx
test al, al
je 0x418752
mov eax, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x78]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x70], 0
mov dword [esp + 0x90], eax
mov al, 1
movsd qword [esp + 0x88], xmm0
mov dword [esp + 0x6c], eax
jmp 0x41882f
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4187c6
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, esp
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0x20]
mov edx, esi
push eax
push ebx
call fcn.00410974
pop eax
pop ecx
cmp dword [esp + 0x20], 1
jne 0x4187ce
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, 0x459de8
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
lea ecx, [esp + 0xf8]
push 1
call fcn.0043571c
pop eax
lea ecx, [esp + 0xa0]
call fcn.004051e6
jmp 0x4187ec
mov esi, dword [esp + 0x18]
xor eax, eax
jmp 0x41880c
mov ecx, dword [esp + 0xf0]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x100], eax
movsd qword [esp + 0xf8], xmm0
mov esi, dword [esp + 0x18]
mov ecx, esp
call fcn.00435706
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x100]
mov dword [esp + 0x88], eax
mov al, 1
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], eax
cmp byte [esp + 0x14], 2
je 0x4188b4
cmp dword [esp + 0x1a8], 0
je 0x4188b4
cmp dword [esp + 0x144], 0
je 0x4188b4
cmp byte [esp + 0x1c], 2
je 0x4188b4
xor edi, 1
or edi, dword [esp + 0xf4]
jne 0x4188b4
cmp dword [esp + 0x1dc], 0
je 0x4188b4
cmp dword [esp + 0x88], 0
je 0x4188b4
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x9c]
cmp ebx, 0x6fc10001
mov eax, ecx
sbb eax, 0x2386f2
jb 0x418928
push 0
push 0xf4240
push ecx
push ebx
call fcn.0044b420
add esp, 0x10
add eax, 0x49ef6f00
mov ebx, edx
lea edi, [esp + 0x20]
adc ebx, 0xfffffffd
mov dword [esp + 0x68], eax
jmp 0x418932
lea ecx, [esp + 0x88]
call fcn.00405348
mov edi, dword [esp + 0x74]
mov bl, 1
cmp byte [esp + 0x6c], 0
je 0x4188d9
lea ecx, [esp + 0xac]
call fcn.00405a85
cmp byte [esp + 0x70], 0
je 0x4188e9
lea ecx, [esp + 0x78]
call fcn.00405348
test bl, bl
je 0x418911
lea ecx, [esp + 0x1dc]
call fcn.00405348
lea ecx, [esp + 0x144]
call fcn.00405348
lea ecx, [esp + 0x1a8]
call fcn.00405348
push 4
pop ebx
lea ecx, [esp + 0x150]
add esi, 0xc
call fcn.004056dc
jmp 0x418305
mov dword [esp + 0x68], ebx
lea edi, [esp + 0x20]
mov ebx, ecx
mov eax, dword [esp + 0x1b0]
movsd xmm0, qword [esp + 0x1a8]
mov esi, esp
lea ecx, [esp + 0x108]
mov edx, esi
mov dword [esp + 8], eax
movsd qword [esp], xmm0
push 0x459d88
call fcn.00406645
pop eax
movzx ecx, byte [esp + 0x14]
mov edx, 0x459d98
call fcn.004066aa
mov ecx, dword [esp + 0x14c]
movsd xmm0, qword [esp + 0x144]
mov byte [esp + 0x14], al
mov edx, esi
mov dword [esp + 8], ecx
movsd qword [esp], xmm0
lea ecx, [esp + 0x138]
push 0x459da8
call fcn.00406645
pop eax
movzx ecx, byte [esp + 0x1c]
mov edx, 0x459db8
call fcn.004066aa
mov ecx, dword [esp + 0x1e4]
movsd xmm0, qword [esp + 0x1dc]
mov byte [esp + 0x1c], al
mov edx, esi
mov dword [esp + 8], ecx
movsd qword [esp], xmm0
lea ecx, [esp + 0xa0]
push 0x459dc8
call fcn.00406645
pop eax
mov eax, dword [esp + 0x90]
movsd xmm0, qword [esp + 0x88]
lea ecx, [esp + 0xf8]
mov edx, esi
mov dword [esp + 8], eax
movsd qword [esp], xmm0
push 0x459dd8
call fcn.00406645
pop eax
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x28]
movsd xmm0, qword [esp + 0x108]
mov edx, dword [esp + 0x120]
mov dword [ecx + 8], eax
mov al, byte [esp + 0x14]
movsd qword [ecx], xmm0
movsd xmm0, qword [esp + 0x138]
mov byte [esp + 0x58], al
mov eax, dword [esp + 0x140]
movsd qword [ecx + 0xc], xmm0
movsd xmm0, qword [esp + 0xa0]
mov dword [ecx + 0x14], eax
mov al, byte [esp + 0x1c]
mov byte [esp + 0x59], al
mov eax, dword [esp + 0x68]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa8]
movsd qword [edx], xmm0
movsd xmm0, qword [esp + 0xf8]
mov dword [edx + 8], eax
mov edx, dword [esp + 0x100]
movsd qword [ecx + 0x24], xmm0
mov dword [ecx + 0x2c], edx
lea ecx, [esp + 0x19c]
mov edx, edi
call fcn.00409fce
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x18]
xor ebx, ebx
jmp 0x4188c6
mov eax, dword [esp + 0x64]
mov dword [esp + 0x184], eax
jmp 0x418ae6
mov ecx, dword [esp + 0x94]
and dword [esp + 0x20], 0
mov dword [esp + 0x184], esi
call fcn.0040569f
and dword [esp + 0x17c], 0
lea ecx, [esp + 0x20]
call fcn.004054e4
mov edi, dword [esp + 0x170]
and dword [esp + 0x170], 0
test edi, edi
je 0x418b52
imul esi, dword [esp + 0xec], 0xc
mov ecx, dword [esp + 0x94]
add esi, edi
call fcn.0040569f
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x17c], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], edi
mov dword [esp + 0x188], esi
mov esi, edi
jmp 0x418305
lea ecx, [esp + 0x244]
call fcn.004055cc
mov edx, dword [esp + 0x60]
jmp 0x418078
mov ecx, dword [esp + 0x118]
call fcn.004051b5
mov ecx, dword [esp + 0x94]
call fcn.0040569f
mov ecx, dword [esp + 0x164]
call fcn.0040569f
lea ecx, [esp + 0x200]
call fcn.0040501a
mov edx, dword [esp + 0x60]
jmp 0x418078
mov ecx, esi
call fcn.004054d4
mov edx, dword [esp + 0x60]
jmp 0x418078
mov ecx, dword [esp + 0x1f8]
call fcn.00405a32
mov ecx, dword [esp + 0x98]
call fcn.0040545d
mov ecx, dword [esp + 0x160]
call fcn.0040545d
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], edx
mov ecx, dword [ebp + 8]
push 4
pop eax
lea edi, [esp + 0x20]
mov dword [esp + 0xac], eax
and dword [esp + 0xb0], 0
and dword [esp + 0xb4], 0
mov edx, dword [ecx + 0x10]
mov ecx, edi
call fcn.00419663
mov esi, dword [edi + 4]
mov ebx, dword [edi + 8]
cmp dword [edi], 1
jne 0x418c52
lea ecx, [esp + 0xac]
call fcn.00405614
lea ecx, [esp + 0x20]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
push 4
pop eax
mov dword [esp + 0x78], eax
and dword [esp + 0x7c], 0
and dword [esp + 0x80], 0
call fcn.004051e6
jmp 0x4193aa
lea eax, [esp + 0x1dc]
lea edi, [esp + 0x1e8]
mov edx, esi
mov dword [eax], esi
mov dword [eax + 4], ebx
mov eax, dword [ebp + 8]
mov ecx, edi
push dword [eax + 0x10]
call fcn.00419b14
pop eax
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
lea esi, [esp + 0x2b0]
lea ebx, [esp + 0x20]
mov ecx, esi
mov edx, ebx
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0040f780
lea eax, [esp + 0x16c]
mov dword [eax], 1
push 4
pop edi
movsd xmm0, qword [esi]
lea ecx, [eax + edi]
movsd qword [eax + 4], xmm0
mov dword [esp + 0xec], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 0xc], ecx
and dword [eax + 0x10], 0
mov dword [esp + 0x6c], ecx
push 0x20
pop ecx
and dword [eax + 0x20], 0
lea esi, [esp + 0xb8]
lea edx, [eax + ecx]
add ecx, ebx
mov dword [esp + 0x11c], edx
lea edx, [ebx + edi]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x64], edx
lea edx, [esp + 0x244]
lea ecx, [edx + edi]
add edi, esi
mov dword [esp + 0x124], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x70], edi
mov dword [esp + 0xf4], ecx
push 0x10
pop ecx
lea eax, [eax + ecx]
mov dword [esp + 0x74], eax
push 0xc
pop eax
lea ecx, [ebx + ecx]
mov dword [esp + 0x9c], ecx
add edx, eax
add eax, esi
mov dword [esp + 0x120], edx
xor edx, edx
mov dword [esp + 0x1c], eax
push 0xd
pop ebx
test edx, edx
je 0x418dab
mov esi, dword [esp + 0x184]
cmp esi, dword [esp + 0x188]
je 0x418d8a
lea eax, [esi + 0x34]
mov ecx, ebx
lea edi, [esp + 0x20]
mov dword [esp + 0x184], eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x20]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x418d93
push 0xc
pop ecx
mov esi, dword [esp + 0x64]
lea edi, [esp + 0x200]
rep movsd dword es:[edi], dword [esi]
jmp 0x418e45
and dword [esp + 0x20], 0
lea edi, [esp + 0x20]
mov ecx, dword [esp + 0x74]
call fcn.0040545d
and dword [esp + 0x17c], 0
mov ecx, edi
call fcn.00405b77
mov eax, dword [esp + 0x170]
and dword [esp + 0x170], 0
test eax, eax
je 0x418dfe
imul esi, dword [esp + 0x6c], 0x34
mov ecx, dword [esp + 0x74]
mov edi, ebx
mov ebx, eax
add esi, eax
call fcn.0040545d
mov eax, dword [esp + 0xf4]
mov edx, ebx
mov ebx, edi
mov dword [esp + 0x17c], edx
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], esi
jmp 0x418d43
cmp dword [esp + 0x18c], 0
je 0x419365
mov esi, dword [esp + 0x194]
cmp esi, dword [esp + 0x198]
je 0x419365
lea eax, [esi + 0x34]
mov dword [esp + 0x194], eax
mov eax, dword [esi]
add esi, 4
push 0xc
pop ecx
lea edi, [esp + 0x200]
xor edx, edx
test eax, eax
rep movsd dword es:[edi], dword [esi]
je 0x419365
mov dword [esp + 0x10], edx
push 0xc
pop edx
lea ebx, [esp + 0x2fc]
lea esi, [esp + 0x200]
mov edi, ebx
mov ecx, edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x244], eax
mov ecx, edx
mov esi, ebx
lea eax, [0x438c6e]
mov edi, dword [esp + 0x124]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], eax
mov ecx, 0xfffff1db
mov eax, dword [esp + 0x20]
add eax, ecx
lea ecx, [0x459d2a]
push ecx
push 6
pop esi
push esi
lea edi, [esp + 0x28]
push edi
call eax
add esp, 0xc
mov ecx, dword [esp + 0x120]
mov edx, edi
push esi
call fcn.0040b252
pop ecx
test al, al
je 0x41930e
push 0xd
pop ebx
lea edi, [esp + 0x20]
lea esi, [esp + 0x244]
mov ecx, ebx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x20]
lea esi, [esp + 0x2bc]
mov ecx, esi
mov edx, edi
call fcn.0041bdb1
cmp dword [esp + 0x2bc], 0
je 0x419355
push 0x10
pop ecx
mov ebx, edi
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x200]
mov ecx, esi
push 0x459df8
call fcn.00406718
pop eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x128]
lea edx, [esp + 0x1dc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], esi
push 0x459e08
push ebx
push dword [esp + 0x238]
push eax
call fcn.004198f1
add esp, 0x10
movsd xmm0, qword [esp + 0x128]
movsd xmm1, qword [esp + 0x130]
lea ecx, [esp + 0x1d0]
mov edx, ebx
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
call fcn.0040f739
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x64]
movsd xmm0, qword [esp + 0x1d0]
mov dword [esp + 0x20], 1
xor edi, edi
lea ebx, [esp + 0xb8]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
and dword [esp + 0x30], 0
and dword [esp + 0x40], 0
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x98], eax
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x68], esi
test edi, edi
je 0x41929b
cmp esi, dword [esp + 0x3c]
je 0x4192a5
mov eax, dword [esi + 8]
movsd xmm0, qword [esi]
mov dword [esp + 0x14], edi
mov ecx, 0xffff1a7b
mov dword [esp + 0x90], eax
lea eax, [0x4463ce]
movsd qword [esp + 0x88], xmm0
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459cda]
push ecx
push 0xa
pop edi
push edi
lea ebx, [esp + 0x100]
push ebx
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x88]
push edi
push ebx
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x419037
and dword [esp + 0x108], 0
jmp 0x419067
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x108]
lea edx, [esp + 0xb8]
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3d3
lea eax, [0x447312]
mov ecx, 0xffff0b37
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459c66]
push ecx
push 0xe
pop ebx
push ebx
lea edi, [esp + 0x100]
push edi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x88]
push ebx
push edi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
jne 0x4190bc
and dword [esp + 0x138], 0
jmp 0x4190ec
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea ecx, [esp + 0x138]
lea edx, [esp + 0xb8]
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3d3
lea eax, [0x437f4b]
mov ecx, 0xfffffefe
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add eax, ecx
lea ecx, [0x459c7a]
push ecx
push 0xe
pop ebx
push ebx
lea edi, [esp + 0x100]
push edi
call eax
add esp, 0xc
mov ecx, esp
lea edx, [esp + 0x88]
push ebx
push edi
call fcn.0040853e
pop eax
pop ecx
cmp dword [esp], 5
mov dword [esp + 0x18], esi
jne 0x419148
and dword [esp + 0xa0], 0
jmp 0x4191db
movsd xmm0, qword [esp]
movsd xmm1, qword [esp + 8]
lea edi, [esp + 0xb8]
lea ecx, [esp + 0xa0]
mov edx, edi
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm0
call fcn.0041c3af
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x4191db
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x20]
mov dword [esp], eax
mov eax, dword [esp + 0xa8]
mov ecx, edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, esp
push eax
push ebx
call fcn.00410974
pop eax
pop ecx
cmp dword [esp + 0xb8], 1
jne 0x4191e3
lea ecx, [esp + 0xf8]
mov edx, 0x459de8
push 1
call fcn.0043571c
pop eax
mov ecx, edi
call fcn.00405b50
jmp 0x4191fe
mov edi, dword [esp + 0x14]
xor eax, eax
jmp 0x41921e
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x100], eax
movsd qword [esp + 0xf8], xmm0
mov edi, dword [esp + 0x14]
mov ecx, esp
call fcn.00435706
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0x110]
movsd xmm0, qword [esp + 0x108]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc0], ebx
movsd qword [esp + 0xb8], xmm0
mov ebx, dword [esp + 0x140]
movsd xmm0, qword [esp + 0x138]
mov dword [esi + 8], ebx
movsd qword [esi], xmm0
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0xb8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0xac]
mov edx, ebx
add esi, 0xc
call fcn.0040a090
lea ecx, [esp + 0x88]
call fcn.004056dc
jmp 0x418fb5
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
jmp 0x4192c9
mov ecx, dword [esp + 0x9c]
and dword [esp + 0xb8], 0
mov dword [esp + 0x38], esi
call fcn.0040569f
and dword [esp + 0x30], 0
mov ecx, ebx
call fcn.004054e4
mov edi, dword [esp + 0x24]
and dword [esp + 0x24], 0
test edi, edi
je 0x41931c
imul esi, dword [esp + 0xf0], 0xc
mov ecx, dword [esp + 0x9c]
add esi, edi
call fcn.0040569f
mov eax, dword [esp + 0x98]
mov dword [esp + 0x30], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov esi, edi
jmp 0x418fb5
lea ecx, [esp + 0x244]
call fcn.004055cc
jmp 0x419349
mov ecx, dword [esp + 0x64]
call fcn.004051b5
mov ecx, dword [esp + 0x9c]
call fcn.0040569f
mov ecx, dword [esp + 0x94]
call fcn.0040569f
lea ecx, [esp + 0x200]
call fcn.0040501a
push 0xd
pop ebx
mov edx, dword [esp + 0x10]
jmp 0x418d43
mov ecx, esi
call fcn.004054d4
mov edx, dword [esp + 0x10]
jmp 0x418d43
mov ecx, dword [esp + 0xec]
call fcn.00405a32
mov ecx, dword [esp + 0x74]
call fcn.0040545d
mov ecx, dword [esp + 0x11c]
call fcn.0040545d
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
lea edx, [esp + 0x20]
mov ecx, dword [ebp + 8]
mov dword [edx], 1
and dword [edx + 4], 0
and dword [edx + 8], 0
call fcn.0041c9b4
test eax, eax
jne 0x419403
lea ecx, [esp + 0x1c4]
lea edx, [esp + 0x20]
call fcn.0041c8a0
test eax, eax
jne 0x419403
lea ecx, [esp + 0x78]
lea edx, [esp + 0x20]
call fcn.0041c79e
test eax, eax
jne 0x419403
lea esi, [esp + 0x20]
lea ecx, [esp + 0x1b8]
mov edx, esi
call fcn.0041c6a4
test eax, eax
je 0x419462
lea ecx, [esp + 0x200]
mov dword [ecx], eax
mov dword [ecx + 4], 0x459430
call fcn.004051e6
mov eax, dword [esp + 0x114]
and dword [eax + 8], 0
mov dword [eax + 4], 0xc01
mov dword [eax], 1
lea ecx, [esp + 0x20]
call fcn.00435706
lea ecx, [esp + 0x78]
call fcn.00405614
lea ecx, [esp + 0x1c4]
call fcn.00405228
lea ecx, [esp + 0x1b8]
call fcn.004052a2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x1fc]
lea edi, [esp + 0x200]
mov ecx, edi
push esi
push 0
call fcn.00419543
pop eax
pop ecx
mov eax, dword [edi]
mov edx, dword [esp + 0x114]
cmp al, 3
jne 0x4194ae
mov ecx, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x78]
lea eax, [edx + 4]
mov dword [eax + 8], ecx
movsd qword [eax], xmm0
and dword [edx], 0
lea ecx, [esp + 0x20]
call fcn.00435706
jmp 0x419442
mov ecx, dword [esp + 0x204]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov dword [edx], 1
jmp 0x419430