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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
sub esp, 0xa00
push 4
pop eax
mov esi, dword [edx]
mov dword [esp + 0x2c], ecx
lea edi, [esp + 0x1e0]
mov dword [ecx], eax
and dword [ecx + 4], 0
and dword [ecx + 8], 0
imul ecx, dword [edx + 8], 0x28
mov dword [esp + 0x28], esi
add ecx, esi
mov dword [esp + 0xfc], ecx
mov ecx, edi
or ecx, eax
mov dword [esp + 0x114], ecx
push 0x24
pop ecx
lea edx, [edi + ecx]
mov dword [esp + 0x34], edx
lea edx, [esp + 0x170]
add ecx, edx
mov dword [esp + 0x10c], ecx
lea ecx, [esp + 0x120]
or ecx, eax
mov dword [esp + 0x11c], ecx
lea ecx, [esp + 0x4e0]
mov edx, ecx
or edx, eax
mov dword [esp + 0x3c], edx
push 0x1c
pop edx
lea ebx, [esp + 0x70]
lea eax, [ebx + edx]
mov dword [esp + 0xe8], eax
lea eax, [esp + 0x740]
add eax, edx
add edx, edi
mov dword [esp + 0x118], eax
mov dword [esp + 0x38], edx
push 0x48
pop eax
lea edx, [ecx + eax]
add eax, edi
mov dword [esp + 0x30], edx
mov dword [esp + 0xd4], eax
push 0x10
pop eax
lea edx, [ecx + eax]
mov dword [esp + 0xf8], edx
push 8
pop edx
lea eax, [edi + eax]
mov dword [esp + 0xe0], eax
lea esi, [edi + edx]
mov edi, dword [esp + 0x28]
add ecx, edx
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], ecx
cmp edi, dword [esp + 0xfc]
je 0x4156c9
mov edx, dword [edi + 0x14]
lea esi, [edi + 0x28]
lea ecx, [esp + 0x160]
push dword [edi + 0x1c]
call fcn.004157a7
pop eax
cmp dword [esp + 0x160], 0
je 0x415544
movsd xmm0, qword [esp + 0x160]
movq xmm1, qword [esp + 0x168]
mov dword [esp + 0x100], esi
lea ecx, [esp + 0x4e0]
lea edx, [esp + 0x1e0]
movq qword [esp + 0x1e8], xmm1
movsd qword [esp + 0x1e0], xmm0
push 0x45a700
call fcn.004066cb
pop eax
mov eax, dword [esp + 0x4e0]
mov esi, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4e4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4e8]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x4ec]
mov dword [esp + 0xf0], eax
push 8
pop edi
lea eax, [esi + edi]
push eax
call fcn.0043fc10
pop ecx
mov edi, edx
lea ecx, [esp + 0x1e0]
mov edx, eax
push edi
call fcn.00444ef0
pop eax
mov eax, dword [esp + 0x1e8]
movsd xmm0, qword [esp + 0x1e0]
lea ecx, [esp + 0x98]
mov dword [esp + 0x28], esi
mov dword [esp + 0x158], eax
movsd qword [esp + 0x150], xmm0
mov eax, dword [esi + 0x20]
and dword [esp + 0x74], 0
and dword [esp + 0x70], 0
mov dword [esp + 0x80], 0xa
and dword [esp + 0x84], 0
movq xmm0, qword [esp + 0x150]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xe8]
and dword [eax + 4], 0
and dword [eax], 0
and dword [eax + 7], 0
mov eax, dword [esp + 0x158]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
push 4
pop eax
mov dword [esp + 0xa4], eax
and dword [esp + 0xa8], 0
and dword [esp + 0xac], 0
push 8
pop eax
lea edi, [esp + 0x1e0]
mov dword [esp + 0xb0], eax
and dword [ecx + 0x28], 0
and dword [ecx + 0x1c], 0
and dword [ecx + 0x20], 0
and dword [ecx + 0x24], 0
mov dword [esp + 0xc4], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
and dword [esp + 0xc8], 0
and dword [esp + 0xcc], 0
add eax, ecx
add ecx, 0xfffffffe
mov dword [esp + 0xec], eax
mov dword [esp + 0xe4], ecx
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
and dword [esp + 0x98], 0
test eax, eax
je 0x414b03
cmp byte [esp + 0x96], 0
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], esi
je 0x414a46
and dword [esp + 0x1e4], 0
and dword [esp + 0x1ec], 0
mov dword [esp + 0x1f0], 7
and dword [edi + 0x18], 0
and dword [edi + 0x1a], 0
and dword [edi + 0x14], 0
and dword [edi + 0x1e], 0
mov byte [esp + 0x1fc], 1
mov dword [esp + 0x1e0], 0x2000000
lea ecx, [esp + 0x4e0]
mov edx, edi
push esi
push eax
call fcn.00445520
pop eax
pop ecx
mov esi, dword [esp + 0x4e4]
cmp dword [esp + 0x4e0], 1
jne 0x4149a3
mov eax, dword [esp + 0x4e8]
mov dword [esp + 0x110], eax
jne 0x4149ae
mov edi, dword [esp + 0x110]
jmp 0x4149cf
mov ecx, edi
mov edx, esi
call fcn.00448064
cmp dword [esp + 0x1e0], 1
jne 0x414a29
mov esi, dword [esp + 0x1e4]
mov edi, dword [esp + 0x1e8]
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x170]
call fcn.00448868
mov ecx, dword [esp + 0x1e0]
mov eax, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1e4]
and dword [esp + 0x40], 0
and dword [esp + 0x44], 0
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x170]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], esi
call fcn.004483fd
xor eax, eax
inc eax
jmp 0x414aaa
mov eax, dword [esp + 0x200]
and dword [esp + 0x74], 0
mov dword [esp + 0x70], 1
and dword [esp + 0x7c], 0
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x178]
movq xmm0, qword [esp + 0x170]
mov ecx, edi
xor edx, edx
mov dword [esp + 0x4e8], eax
movq qword [esp + 0x4e0], xmm0
push 0
lea ebx, [esp + 0x4e4]
push ebx
call fcn.00448b9f
pop eax
pop ecx
cmp dword [esp + 0x1e0], 1
jne 0x414ab9
movdqu xmm0, xmmword [esp + 0x1e4]
movdqu xmm1, xmmword [esp + 0x1f4]
xor eax, eax
lea ebx, [esp + 0x70]
inc eax
movdqa xmmword [esp + 0x50], xmm1
movdqa xmmword [esp + 0x40], xmm0
push 0x13
pop ecx
lea edx, [esp + 0x490]
jmp 0x414e82
push 0x1a
pop ecx
mov esi, dword [esp + 0x104]
lea eax, [esp + 0x740]
mov edx, edi
mov edi, eax
rep movsd dword es:[edi], dword [esi]
push 0x1a
pop ecx
mov edi, ebx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, edx
mov ecx, edx
lea edx, [esp + 0x70]
push ebx
call fcn.00448fc2
pop eax
mov eax, dword [esp + 0x1e0]
cmp eax, 2
jne 0x415007
mov ecx, edi
call fcn.00448566
lea ebx, [esp + 0x70]
mov eax, dword [esp + 0xac]
test eax, eax
je 0x414ddf
mov ecx, edi
mov edx, ebx
mov dword [esp + 0xc0], eax
call fcn.0044970c
mov eax, dword [esp + 0x1e8]
xor eax, 2
or eax, dword [esp + 0x1ec]
jne 0x414e15
mov ecx, edi
call fcn.004497de
mov eax, dword [esp + 0xc0]
cmp eax, dword [esp + 0x88]
ja 0x414dd3
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x4156d1
mov eax, dword [esp + 0xa4]
dec ecx
imul ecx, ecx, 0x268
cmp dword [eax + ecx], 1
jne 0x414bbe
mov esi, dword [eax + ecx + 0xc]
cmp esi, dword [eax + ecx + 0x10]
je 0x414dd3
lea eax, [eax + ecx + 0xc]
lea ecx, [esi + 0x70]
mov dword [eax], ecx
mov eax, dword [esi]
movdqu xmm0, xmmword [esi + 4]
movdqu xmm1, xmmword [esi + 0x14]
add esi, 0x24
movdqa xmmword [esp + 0x130], xmm1
movdqa xmmword [esp + 0x120], xmm0
push 0x13
pop ecx
lea edi, [esp + 0x444]
jmp 0x414d28
lea edx, [eax + ecx + 0xc]
cmp dword [edx - 4], 1
jne 0x414c0a
push 2
pop ecx
mov dword [esp + 0x1e4], ecx
movdqu xmm0, xmmword [edx]
movaps xmm3, xmmword [esp + 0x1f0]
movdqa xmm2, xmmword [esp + 0x1e0]
movdqu xmm1, xmmword [edx + 0x10]
movups xmmword [edx + 0x10], xmm3
pshufd xmm3, xmm0, 0xe5
movdqu xmmword [edx], xmm2
movd eax, xmm3
cmp eax, ecx
je 0x414dd3
jmp 0x41507c
mov esi, dword [eax + ecx + 4]
mov ecx, edi
call fcn.00445570
mov edi, dword [esp + 0x1e0]
cmp edi, 2
push 2
pop eax
je 0x414d2a
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x18], eax
push 0x24c
lea eax, [esp + 0x1f0]
push eax
lea ebx, [esp + 0x748]
push ebx
call fcn.0044b85c
add esp, 0xc
cmp edi, 1
jne 0x414c9e
mov eax, dword [esp + 0x24]
inc esi
mov dword [esp + 0x174], esi
and dword [esp + 0x178], 0
and dword [esp + 0x17c], 0
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18c], eax
xor eax, eax
mov dword [esp + 0x170], 1
inc eax
jmp 0x414cef
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4e0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4e4], eax
push 0x24c
push ebx
push dword [esp + 0x110]
call fcn.0044b85c
add esp, 0xc
inc esi
lea ecx, [esp + 0x170]
mov edx, esi
lea esi, [esp + 0x4e0]
push esi
call fcn.00448682
pop eax
mov ecx, esi
call fcn.0044882e
mov eax, dword [esp + 0x170]
push 0x13
pop ecx
movdqu xmm0, xmmword [esp + 0x174]
movdqu xmm1, xmmword [esp + 0x184]
mov esi, dword [esp + 0x10c]
lea edi, [esp + 0x444]
lea ebx, [esp + 0x70]
movdqa xmmword [esp + 0x130], xmm1
movdqa xmmword [esp + 0x120], xmm0
rep movsd dword es:[edi], dword [esi]
cmp eax, 2
lea edi, [esp + 0x1e0]
je 0x414dd3
cmp eax, 1
je 0x41508e
mov ecx, dword [esp + 0x11c]
mov eax, dword [ecx + 0x18]
movq xmm0, qword [ecx + 0x10]
movq xmm2, qword [ecx]
movq xmm1, qword [ecx + 8]
mov dword [esp + 0x758], eax
movq qword [esp + 0x750], xmm0
movq qword [esp + 0x748], xmm1
movq qword [esp + 0x740], xmm2
push 0x13
pop ecx
mov edi, dword [esp + 0x118]
lea esi, [esp + 0x444]
rep movsd dword es:[edi], dword [esi]
push 0x1a
pop ecx
lea eax, [esp + 0x4e0]
lea esi, [esp + 0x740]
mov edx, ebx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x1e0]
mov ecx, edi
push eax
call fcn.00448fc2
pop eax
mov eax, dword [esp + 0x1e0]
cmp eax, 2
jne 0x415044
mov ecx, edi
call fcn.00448566
jmp 0x414b03
mov ecx, ebx
call fcn.004497f7
jmp 0x414b03
cmp byte [esp + 0x95], 0
je 0x415552
and dword [esp + 0xc0], 0
mov ecx, edi
mov edx, ebx
call fcn.0044970c
mov eax, dword [esp + 0x1e8]
xor eax, 2
or eax, dword [esp + 0x1ec]
je 0x41554b
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x3c]
movsd xmm0, qword [esp + 0x1f0]
movsd xmm1, qword [esp + 0x1e8]
mov dword [ecx + 0x18], eax
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0x1e0]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
push 0x13
pop eax
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x490]
mov edi, edx
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
movdqa xmm0, xmmword [esp + 0x4e0]
movdqa xmm1, xmmword [esp + 0x4f0]
movdqa xmmword [esp + 0x50], xmm1
movdqa xmmword [esp + 0x40], xmm0
movdqa xmm0, xmmword [esp + 0x40]
movdqa xmm1, xmmword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x1e0], eax
mov esi, edx
cmp eax, 1
movdqu xmmword [esp + 0x1f4], xmm1
movdqu xmmword [esp + 0x1e4], xmm0
rep movsd dword es:[edi], dword [esi]
jne 0x414ecd
push dword [esp + 0x114]
call fcn.00405586
pop eax
lea edi, [esp + 0x1e0]
jmp 0x4148ec
pshufd xmm2, xmm0, 0xe7
movd eax, xmm1
movd edx, xmm2
mov ecx, edx
xor ecx, 2
or ecx, eax
push 0x16
pop ecx
lea edi, [esp + 0x4e0]
lea esi, [esp + 0x1f8]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x1e0]
je 0x4148ec
pshufd xmm1, xmm0, 0x4e
pshufd xmm0, xmm0, 0xe5
movd ebx, xmm1
push 0x16
pop ecx
lea edi, [esp + 0x990]
lea esi, [esp + 0x4e0]
rep movsd dword es:[edi], dword [esi]
movd ecx, xmm0
mov dword [esp + 0x4e4], ebx
mov dword [esp + 0x4e0], ecx
mov dword [esp + 0x4ec], eax
mov dword [esp + 0x4e8], edx
push 0x16
pop ecx
mov edi, dword [esp + 0xf8]
lea esi, [esp + 0x990]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x528]
mov edx, dword [esp + 0x530]
call fcn.00447c60
mov esi, edx
test eax, eax
jne 0x414f7c
mov eax, dword [esp + 0x528]
mov esi, dword [esp + 0x530]
lea ecx, [esp + 0x444]
mov edx, eax
push esi
call fcn.00444bc0
pop eax
mov eax, dword [esp + 0x534]
lea edi, [esp + 0x1e0]
test al, 0x10
jne 0x41509f
mov cl, byte [esp + 0x53b]
shr eax, 0xa
and cl, 0x20
shr cl, 5
and cl, al
jne 0x41509f
mov ecx, dword [esp + 0x28]
lea ebx, [esp + 0x70]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x4151e3
cmp byte [esp + 0x540], 0
je 0x4150b4
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.00448126
cmp dword [esp + 0x1e0], 1
je 0x4156e6
mov eax, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1ec]
jmp 0x4151b8
movdqu xmm0, xmmword [esp + 0x1e4]
movdqu xmm1, xmmword [esp + 0x1f4]
movdqa xmmword [esp + 0x50], xmm1
movdqa xmmword [esp + 0x40], xmm0
push 0x13
pop ebx
mov esi, dword [esp + 0x34]
lea edx, [esp + 0x490]
mov edi, edx
mov ecx, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea ebx, [esp + 0x70]
jmp 0x414e82
movdqu xmm0, xmmword [esp + 0x1e4]
movdqu xmm1, xmmword [esp + 0x1f4]
movdqa xmmword [esp + 0x50], xmm1
movdqa xmmword [esp + 0x40], xmm0
push 0x13
pop ecx
mov esi, dword [esp + 0x34]
lea edx, [esp + 0x490]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
push 0x13
pop ecx
jmp 0x414e82
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x130], xmm1
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x50], xmm1
jmp 0x414a21
lea ecx, [esp + 0x444]
call fcn.00405ab8
lea ebx, [esp + 0x70]
jmp 0x4154b1
mov eax, dword [esp + 0x4e0]
mov edx, dword [esp + 0x4e4]
mov esi, dword [esp + 0x4e8]
mov ecx, dword [esp + 0x4ec]
mov edi, dword [esp + 0x4f4]
mov dword [esp + 0x1ec], edx
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1f0], esi
mov esi, dword [esp + 0x4f0]
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1fc], edi
mov edi, dword [esp + 0x4f8]
mov dword [esp + 0x1f8], esi
mov esi, dword [esp + 0x4fc]
mov dword [esp + 0x200], edi
mov edi, dword [esp + 0x500]
mov dword [esp + 0x204], esi
mov esi, dword [esp + 0x504]
mov dword [esp + 0x208], edi
mov edi, dword [esp + 0x508]
mov dword [esp + 0x20c], esi
mov esi, dword [esp + 0x50c]
mov dword [esp + 0x210], edi
mov edi, dword [esp + 0x510]
mov dword [esp + 0x214], esi
mov esi, dword [esp + 0x514]
mov dword [esp + 0x218], edi
mov edi, dword [esp + 0x518]
mov dword [esp + 0x21c], esi
mov esi, dword [esp + 0x51c]
mov dword [esp + 0x220], edi
mov edi, dword [esp + 0x520]
mov dword [esp + 0x224], esi
mov esi, dword [esp + 0x524]
mov dword [esp + 0x228], edi
mov dword [esp + 0x22c], esi
and dword [esp + 0x1e0], 0
push 0x10
pop ecx
mov esi, dword [esp + 0xe0]
lea edi, [esp + 0x740]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x1e0]
mov ecx, dword [esp + 0x28]
cmp dword [ecx], eax
mov ecx, dword [ecx + 4]
sbb ecx, edx
jb 0x4154a5
cmp dword [esp + 0x444], 1
mov edx, dword [esp + 0x448]
lea eax, [esp + 0x44c]
lea ecx, [esp + 0x450]
cmove eax, ecx
lea ecx, [esp + 0x170]
push dword [eax]
call fcn.004157a7
pop eax
cmp dword [esp + 0x170], 0
je 0x4154a5
movq xmm0, qword [esp + 0x170]
movq xmm1, qword [esp + 0x178]
lea ecx, [esp + 0x740]
mov edx, edi
movq qword [esp + 0x1e8], xmm1
movq qword [esp + 0x1e0], xmm0
push 0x45a720
call fcn.004066cb
pop eax
mov eax, dword [esp + 0x740]
lea ecx, [esp + 0x120]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x744]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x748]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x74c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x124], eax
call fcn.0040b13b
mov esi, eax
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], ecx
mov ecx, edi
call fcn.0040f631
cmp dword [esp + 0x1c], 2
jbe 0x415362
cmp esi, 0x110000
je 0x415362
mov edi, eax
cmp eax, 0x110000
je 0x415362
mov ecx, esi
mov edx, 0x45a730
call fcn.0040675f
cmp eax, 0x2a
jne 0x415362
mov ecx, edi
mov edx, 0x45a740
call fcn.0040675f
cmp eax, 0x2a
jne 0x415362
mov edx, dword [esp + 0xe4]
xor ecx, ecx
inc ecx
push dword [esp + 0x1c]
push dword [esp + 0x24]
call fcn.00405cbc
pop ecx
pop ecx
mov esi, edx
mov edx, dword [esp + 0x18]
lea edi, [esp + 0x1e0]
mov ecx, edi
push esi
push eax
push dword [esp + 0x2c]
call fcn.00433440
add esp, 0xc
lea ecx, [esp + 0x740]
mov edx, edi
call fcn.0040da73
cmp dword [esp + 0x740], 1
mov cl, 1
je 0x415397
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push 1
push 0x4619c0
call fcn.00404c04
pop ecx
pop edx
mov cl, 1
test al, al
jne 0x415397
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.00404c04
pop ecx
pop edx
mov ecx, eax
mov edi, dword [esp + 0xf0]
mov esi, dword [esp + 0xf4]
mov byte [esp + 0x18], cl
mov ecx, esi
mov edx, edi
push 1
push 0x4619c0
call fcn.00404c04
pop ecx
pop edx
test al, al
je 0x4153d2
cmp byte [esp + 0x18], 0
lea edi, [esp + 0x1e0]
jne 0x415405
jmp 0x4154a5
mov ecx, esi
mov edx, edi
push dword [esp + 0xd8]
push dword [esp + 0xe0]
call fcn.00404c04
pop ecx
pop edx
cmp byte [esp + 0x18], 0
lea edi, [esp + 0x1e0]
je 0x4154a5
test al, al
je 0x4154a5
push 0x1a
pop ecx
lea esi, [esp + 0x4e0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xd4]
mov esi, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x498], eax
mov eax, dword [esi + 8]
movsd qword [esp + 0x490], xmm0
cmp eax, dword [esi + 4]
jne 0x4154bf
mov ecx, eax
inc ecx
je 0x415791
mov dword [esp + 0x18], eax
add eax, eax
cmp eax, ecx
cmova ecx, eax
push 4
pop eax
cmp ecx, eax
cmovbe ecx, eax
xor esi, esi
mov eax, ecx
push 0xc
pop ecx
lea edi, [esp + 0x1e0]
mul ecx
mov ecx, eax
jo 0x415479
push 4
pop edx
call fcn.00406437
mov esi, edx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4154c3
mov edx, dword [esp + 0x2c]
imul ecx, ecx, 0xc
mov edx, dword [edx]
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1e8], 4
jmp 0x4154cb
lea ecx, [esp + 0x444]
call fcn.00405ab8
mov ecx, dword [esp + 0x30]
call fcn.00435706
jmp 0x4148ec
mov ecx, dword [esi]
jmp 0x41550d
and dword [esp + 0x1e0], 0
lea ecx, [esp + 0x740]
mov edx, eax
push edi
push esi
call fcn.00435478
pop eax
pop ecx
mov ecx, dword [esp + 0x744]
mov eax, dword [esp + 0x748]
cmp dword [esp + 0x740], 1
je 0x415793
mov esi, dword [esp + 0x2c]
xor edx, edx
mov dword [esi], ecx
push 0xc
pop edi
div edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x498]
imul eax, eax, 0xc
mov dword [ecx + eax + 8], edx
movq xmm0, qword [esp + 0x490]
movq qword [ecx + eax], xmm0
inc dword [esi + 8]
lea ecx, [esp + 0x444]
call fcn.00405ab8
lea edi, [esp + 0x1e0]
jmp 0x4148ec
mov edi, esi
jmp 0x41473c
mov ecx, edi
call fcn.004497de
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x415584
mov ecx, dword [esp + 0x90]
push eax
call dword [ecx]
add esp, 4
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov edx, dword [eax + 4]
push dword [eax + 8]
call fcn.0040aa87
pop eax
lea ecx, [esp + 0x98]
call fcn.00405529
mov esi, dword [esp + 0xa4]
imul edi, dword [esp + 0xac], 0x268
add esi, 0x10
test edi, edi
je 0x4155f4
cmp dword [esi - 0x10], 0
je 0x4155c5
lea ecx, [esi - 0xc]
call fcn.00448965
add esi, 0x268
add edi, 0xfffffd98
jmp 0x4155a5
cmp dword [esi - 8], 0
je 0x4155dc
cmp dword [esi], 2
je 0x4155b7
lea eax, [esi - 4]
push eax
call fcn.00405586
pop eax
jmp 0x4155b7
mov ecx, dword [esi - 4]
call fcn.00447ef0
mov eax, dword [esi]
lock dec dword [eax]
jne 0x4155b7
mov ecx, esi
call fcn.00448840
jmp 0x4155b7
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x415614
mov ecx, dword [esp + 0xa4]
imul edx, eax, 0x268
push 4
call fcn.0040aa87
pop eax
mov edi, dword [esp + 0xb0]
imul ebx, dword [esp + 0xb8], 0x38
lea esi, [edi + 0x1c]
test ebx, ebx
je 0x41565a
lea ecx, [edi + 0x28]
call fcn.00435706
cmp dword [edi + 0x18], 0
je 0x415648
mov ecx, esi
call fcn.0044b3fc
mov ecx, esi
call fcn.0040531e
jmp 0x41564f
mov ecx, dword [esi]
call fcn.00447f90
add edi, 0x38
add esi, 0x38
add ebx, 0xffffffc8
jmp 0x415626
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x415677
mov ecx, dword [esp + 0xb0]
imul edx, eax, 0x38
push 8
call fcn.0040aa87
pop eax
mov ecx, dword [esp + 0xc4]
imul esi, dword [esp + 0xcc], 0x68
lea ebx, [esp + 0x70]
test esi, esi
je 0x4156a0
lea edi, [ecx + 0x68]
add ecx, 0x48
call fcn.00435706
add esi, 0xffffff98
mov ecx, edi
jmp 0x41568a
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x4156bd
mov ecx, dword [esp + 0xc4]
imul edx, eax, 0x68
push 8
call fcn.0040aa87
pop eax
mov edi, dword [esp + 0x100]
jmp 0x41473c
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x1e
pop edx
mov ecx, 0x461bc5
push 0x461be4
call fcn.00432390
pop eax
ud2
movsd xmm0, qword [esp + 0x1e4]
lea esi, [esp + 0x170]
lea eax, [esp + 0x740]
lea edx, [esp + 0x4e0]
mov ecx, esi
movsd qword [esp + 0x740], xmm0
push eax
call fcn.00448b4a
pop eax
mov ecx, dword [esi]
mov ebx, edi
mov edi, dword [esi + 0x1c]
movsd xmm0, qword [esi + 0x14]
movsd xmm1, qword [esi + 0xc]
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x750], edi
movsd qword [esp + 0x748], xmm0
movsd qword [esp + 0x740], xmm1
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1e4], edx
movsd qword [esp + 0x1ec], xmm1
movsd qword [esp + 0x1f4], xmm0
mov dword [esp + 0x1fc], edi
push 0x2b
pop edx
mov ecx, 0x461d58
push 0x45a710
push 0x4596e0
push ebx
call fcn.004323e0
add esp, 0xc
ud2
xor eax, eax
test eax, eax
jne 0x41579e
call fcn.0042e8c0
ud2
mov edx, eax
call fcn.0042e8b0
ud2