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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x190
mov dword [esp + 0x70], ecx
push 4
pop ecx
lea eax, [esp + 0x40]
lea edx, [eax + ecx]
mov dword [esp + 0xd4], edx
push 6
pop edx
add edx, eax
lea eax, [esp + 0x178]
add eax, ecx
mov dword [esp + 0x130], edx
mov dword [esp + 0x170], eax
lea eax, [0x43d472]
mov ecx, 0xffffa9d7
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add eax, ecx
lea ecx, [0x45a8f2]
push ecx
push 0x12
lea esi, [esp + 0x148]
push esi
call eax
add esp, 0xc
lea ecx, [esp + 0x134]
mov edx, esi
call fcn.00404ae1
mov eax, dword [esp + 0x13c]
movsd xmm0, qword [esp + 0x134]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x20]
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0xb8], eax
mov dword [esp + 4], eax
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], eax
call fcn.00446fd0
cmp dword [esp + 0x40], 1
jne 0x415e21
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
test esi, esi
mov dword [esp + 0xc], eax
je 0x415c33
mov al, byte [ecx]
lea edi, [ecx + 1]
lea edx, [esi - 1]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edx
cmp al, 0x3a
jne 0x415c33
mov dword [esp + 0x1c], esi
mov dword [esp + 8], ebx
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x10], edi
mov edi, esi
test edx, edx
je 0x415c02
mov esi, dword [esp + 0x10]
lea eax, [edx - 1]
lea ecx, [esi + 1]
movzx esi, byte [esi]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
add esi, 0xffffffd0
cmp esi, 9
ja 0x415c02
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov edx, eax
inc ecx
jmp 0x415c10
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
cmp ecx, 1
jne 0x4161ad
cmp ebx, 4
ja 0x415c2c
imul ecx, edi, 0xa
inc ebx
add esi, ecx
cmp esi, 0x10000
jb 0x415bd4
xor ebx, ebx
jmp 0x4161b9
mov dword [esp + 0x20], ecx
mov eax, ecx
mov dword [esp + 0x24], esi
xor ecx, ecx
mov edx, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
test cx, cx
je 0x415e21
mov ecx, dword [esp + 4]
rol di, 8
xor esi, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 8], 0
mov word [esp + 0x74], 2
mov dword [esp + 0x3c], 0
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x415fef
call fcn.0044b6bc
push 0x20
push 0
push eax
call fcn.0044b694
test eax, eax
je 0x417105
mov ebx, eax
mov dword [eax], esi
movzx eax, word [esp + 0x74]
mov word [ebx + 4], ax
mov eax, dword [esp + 0xc]
mov word [ebx + 6], di
mov dword [ebx + 8], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x10]
mov byte [ebx + 0x14], ah
mov byte [ebx + 0x15], al
mov eax, dword [esp + 0x1c]
mov byte [ebx + 0x16], ah
mov byte [ebx + 0x17], al
mov eax, dword [esp + 0x6c]
mov byte [ebx + 0x18], ah
mov byte [ebx + 0x19], al
mov eax, dword [esp + 0x7c]
mov byte [ebx + 0x1a], ah
mov byte [ebx + 0x1b], al
and dword [ebx + 0x1c], 0
mov eax, ebx
add eax, 0x20
xor edi, edi
inc edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edi
mov edi, eax
lea edx, [esp + 0xe8]
lea esi, [ebx + 0x20]
mov dword [esp + 0x28], ebx
mov byte [esp + 0xc0], 3
mov dword [esp + 0x2c], eax
mov dword [esp + 4], eax
sub edi, ebx
test edi, edi
je 0x4161f4
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx]
mov dword [esp + 0x58], ecx
cmp eax, 2
movsd xmm0, qword [ebx + 0x14]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [ebx + 0xc]
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [ebx + 4]
movsd qword [esp + 0x40], xmm0
je 0x4161f8
mov ecx, dword [esp + 0x58]
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x48]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xd4]
and dword [esp + 0xe8], 0
mov dword [esp + 0x98], ecx
mov dword [eax + 0x18], ecx
lea ecx, [esp + 0x40]
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x88], xmm2
movsd qword [esp + 0x80], xmm1
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
mov dword [esp + 0xec], ecx
lea ecx, [esp + 0x108]
call fcn.00404c55
cmp dword [esp + 0x108], 1
jne 0x416950
movsd xmm0, qword [esp + 0x10c]
lea ecx, [esp + 0xc0]
add ebx, 0x20
movsd qword [esp + 0x10], xmm0
call fcn.004050d6
movsd xmm0, qword [esp + 0x10]
add esi, 0x20
add edi, 0xffffffe0
lea edx, [esp + 0xe8]
movsd qword [esp + 0xc0], xmm0
jmp 0x415d26
mov ecx, dword [esp + 4]
mov edx, ebx
mov dword [esp + 0x20], ebx
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x415fdd
mov al, byte [edx]
lea esi, [edx + 1]
lea ebx, [ecx - 1]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
cmp al, 0x5b
jne 0x415fdd
mov dword [esp + 8], edx
xorps xmm0, xmm0
lea edx, [esp + 0x40]
lea ecx, [esp + 0x20]
movaps xmmword [esp + 0x40], xmm0
push 8
pop edi
push edi
call fcn.00447630
pop ecx
cmp eax, edi
jne 0x4160a2
movzx ecx, word [esp + 0x42]
movzx edx, word [esp + 0x44]
movzx eax, word [esp + 0x40]
mov ebx, dword [esp + 8]
mov dword [esp + 0x124], ecx
movzx ecx, word [esp + 0x46]
mov dword [esp + 0x128], edx
movzx edx, word [esp + 0x48]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x120], ecx
movzx ecx, word [esp + 0x4a]
mov dword [esp + 0x10], edx
movzx edx, word [esp + 0x4c]
mov dword [esp + 0x1c], ecx
movzx ecx, word [esp + 0x4e]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 4]
test edx, edx
je 0x4161e7
mov dword [esp + 0x3c], eax
lea esi, [eax + 1]
lea edi, [edx - 1]
mov eax, dword [esp + 0x3c]
mov al, byte [eax]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
cmp al, 0x5d
mov eax, dword [esp + 0x3c]
jne 0x4161e7
test edi, edi
je 0x416372
mov eax, dword [esp + 0x3c]
add dword [esp + 0x3c], 2
add edx, 0xfffffffe
mov dword [esp + 0x100], edx
mov al, byte [eax + 1]
mov byte [esp + 0xc], al
mov eax, dword [esp + 0x3c]
cmp byte [esp + 0xc], 0x3a
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], edx
jne 0x416372
mov edx, dword [esp + 0x100]
mov dword [esp + 0x168], esi
mov ecx, eax
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x16c], edi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov edi, edx
mov dword [esp + 0xc], esi
test ecx, ecx
je 0x415fa1
mov esi, dword [esp + 0x74]
lea edx, [ecx - 1]
lea eax, [esi + 1]
movzx esi, byte [esi]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
add esi, 0xffffffd0
cmp esi, 9
ja 0x415fa1
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x78], edx
inc eax
jmp 0x415faf
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x24], ecx
cmp eax, 1
mov edx, edi
jne 0x416521
cmp ebx, 4
ja 0x415fcf
imul eax, dword [esp + 0xc], 0xa
inc ebx
add esi, eax
cmp esi, 0x10000
jb 0x415f69
mov eax, dword [esp + 0x100]
xor ebx, ebx
jmp 0x416534
mov ebx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
and dword [esp + 0x40], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ecx
and dword [esp + 0x50], 0
mov dword [esp + 0x54], ecx
push 0x3a
pop ecx
xor eax, eax
inc eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x40]
mov word [esp + 0x64], 1
mov dword [esp + 0x68], eax
call fcn.004478c0
test eax, eax
je 0x416077
mov ebx, eax
mov eax, dword [esp + 0x68]
lea esi, [esp + 0x80]
test eax, eax
je 0x416276
mov edi, edx
cmp eax, 1
jne 0x416083
and dword [esp + 0x68], 0
cmp byte [esp + 0x65], 0
jne 0x416276
cmp byte [esp + 0x64], 0
je 0x416266
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
jmp 0x416313
lea ecx, [esp + 0x80]
jmp 0x416278
dec eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x68], eax
call fcn.004478c0
test eax, eax
je 0x416276
mov dword [esp + 4], edx
jmp 0x416322
test dl, 1
jne 0x41650c
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
xor edx, edx
test edi, edi
mov dword [esp + 0x10], ecx
je 0x416500
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov cl, byte [ecx]
mov dword [esp + 0xc], edx
lea edx, [edi - 1]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0xc]
mov byte [esp + 0x1c], cl
cmp byte [esp + 0x1c], 0x3a
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x24], edx
jne 0x41649d
test edx, edx
je 0x4164f6
mov ecx, dword [esp + 0x10]
add edi, 0xfffffffe
mov cl, byte [ecx + 1]
mov byte [esp + 0x1c], cl
mov ecx, dword [esp + 0x10]
add ecx, 2
cmp byte [esp + 0x1c], 0x3a
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jne 0x416500
and dword [esp + 0x84], 0
and dword [esp + 0x80], 0
and dword [esp + 0x8a], 0
and dword [esp + 0x86], 0
push 7
pop esi
sub esi, eax
jb 0x4170d7
lea ecx, [esp + 0x20]
lea edx, [esp + 0x80]
push esi
call fcn.00447630
pop ecx
push 8
pop ecx
mov ebx, dword [esp + 8]
sub ecx, eax
jb 0x4170e3
cmp eax, 8
je 0x4170f2
add eax, eax
lea ecx, [esp + ecx*2 + 0x40]
push eax
lea eax, [esp + 0x84]
push eax
push ecx
call fcn.0044b85c
add esp, 0xc
movzx ecx, word [esp + 0x42]
movzx edx, word [esp + 0x44]
movzx eax, word [esp + 0x40]
jmp 0x415e88
test ebx, ebx
mov ebx, 0
setne bl
jne 0x4161c9
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
xor ecx, ecx
test ebx, ebx
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
setne cl
jne 0x415c49
jmp 0x415c3f
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x415fe7
mov esi, dword [esp + 4]
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], esi
call fcn.0040520f
mov ebx, dword [esp + 0xc0]
cmp bl, 3
jne 0x416230
lea ecx, [esp + 0x40]
push 0xb
pop edx
push 0x22
push 0x4593bc
call fcn.0043562d
pop eax
pop ecx
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
jmp 0x41623f
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
lea ecx, [esp + 0xb0]
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], esi
mov dword [esp + 0xd8], 1
call fcn.00435706
jmp 0x4162df
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jne 0x416313
mov ecx, esi
push 0xb
pop edx
push 0x16
push 0x461968
call fcn.0043fa80
pop eax
pop ecx
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
xor ebx, ebx
lea ecx, [esp + 0xd8]
lea edx, [esp + 0x40]
inc ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edi
call fcn.00404c55
mov esi, dword [esp + 0xd8]
lea ecx, [esp + 0xb0]
call fcn.00435706
cmp esi, ebx
jne 0x41698c
mov ebx, dword [esp + 0xdc]
mov esi, dword [esp + 0xe0]
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], esi
mov dword [esp + 0x178], 1
push 0x3e8
call fcn.0044b614
lea ecx, [esp + 0x178]
call fcn.00405178
jmp 0x415b08
mov byte [esp + 0x65], 1
sub ecx, eax
add eax, dword [esp + 0x48]
mov dword [esp + 4], ecx
test edi, edi
mov dword [esp + 0x10], eax
je 0x41635c
cmp byte [ebx], 0x2b
jne 0x416333
dec edi
je 0x41635c
inc ebx
xor esi, esi
test edi, edi
je 0x41642a
movzx ecx, byte [ebx]
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x41635c
mov eax, esi
mov dx, 0xa
mul dx
jo 0x41635c
mov esi, eax
inc ebx
dec edi
add si, cx
jae 0x416335
lea ecx, [esp + 0x80]
push 0xb
pop edx
push 0x12
push 0x46197e
jmp 0x416282
mov edx, dword [esp + 0x10]
mov eax, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], edi
mov esi, eax
xor eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x78], edi
test ax, ax
je 0x415fe7
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x124]
mov esi, dword [esp + 0x128]
mov edi, dword [esp + 0x12c]
mov word [esp + 0x74], 0x17
movzx eax, cl
movzx ecx, ch
shl eax, 0x18
shl ecx, 0x10
or ecx, eax
movzx eax, dl
movzx edx, dh
shl eax, 0x18
shl edx, 0x10
or edx, eax
mov eax, esi
movzx eax, al
shl eax, 8
or eax, ecx
mov ecx, edi
movzx ecx, cl
shl ecx, 8
or ecx, edx
mov edx, esi
movzx edx, dh
or edx, eax
mov eax, edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0xc], 0
movzx eax, ah
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x78]
or eax, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 8], eax
rol di, 8
xor esi, esi
inc esi
jmp 0x415c83
mov eax, dword [0x46c1c4]
cmp eax, 3
jne 0x41692f
mov edx, dword [esp + 0x10]
lea edi, [esp + 0x80]
mov ecx, edi
push dword [esp + 4]
call fcn.0043e3d0
pop eax
mov ebx, dword [esp + 0x88]
cmp dword [esp + 0x80], 1
jne 0x4164a1
mov esi, dword [esp + 0x8c]
mov ecx, edi
push 0xb
pop edx
push 0x21
push 0x46165c
call fcn.0043fa80
pop eax
pop ecx
test ebx, ebx
je 0x416289
test esi, esi
je 0x416289
call fcn.0044b6bc
push ebx
push 0
push eax
call fcn.0044b68c
jmp 0x416289
mov edx, edi
jmp 0x416500
mov ecx, dword [esp + 0x84]
and dword [esp + 0x20], 0
xorps xmm0, xmm0
lea eax, [esp + 0x20]
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x90], xmm0
mov dword [esp + 0x88], 1
push eax
push edi
push 0
mov dword [esp + 0x1c], ecx
push ecx
call fcn.0044b7f4
test eax, eax
je 0x41656c
xor esi, esi
call fcn.0044b824
xor ecx, ecx
mov edi, eax
inc ecx
jmp 0x41658d
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 8]
jmp 0x415fe7
mov eax, dword [esp + 0x100]
test ebx, ebx
mov ebx, 0
setne bl
jne 0x416544
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
xor eax, eax
test ebx, ebx
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x168]
setne al
jne 0x416394
jmp 0x416388
mov ecx, dword [esp + 0x11c]
mov edi, dword [esp + 0x20]
movzx eax, si
and ecx, 0xffff0000
mov esi, edi
or ecx, eax
mov dword [esp + 0x11c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x10]
test ebx, ebx
mov byte [eax], 0
je 0x4165b0
mov ebx, eax
mov dword [esp + 4], ecx
call fcn.0044b6bc
push ebx
push 0
push eax
call fcn.0044b68c
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x11c]
test ecx, ecx
jne 0x416297
lea ecx, [esp + 0x158]
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc8], eax
lea edx, [esp + 0xc0]
mov word [esp + 0x158], ax
mov dword [esp + 0xcc], ecx
lea ecx, [esp + 0x40]
call fcn.004473e0
mov esi, dword [esp + 0x40]
cmp esi, 2
jne 0x41661b
push dword [esp + 0xc0]
call fcn.0044b7fc
xor eax, eax
xor edi, edi
push 4
pop ebx
jmp 0x416925
mov edx, dword [esp + 0x130]
movzx ecx, word [esp + 0x44]
mov eax, dword [esp + 0xcc]
movsd xmm0, qword [edx + 0x10]
mov word [esp + 0x10], cx
movzx ecx, word [edx + 0x18]
movsd xmm1, qword [edx + 8]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [edx]
mov word [esp + 0x98], cx
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm0
movzx edi, word [eax]
lea eax, [esp + 0x82]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd xmm2, qword [eax + 0x10]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x30], xmm2
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x28]
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x40], xmm2
call fcn.0044b6bc
push 0x20
push 0
push eax
call fcn.0044b694
test eax, eax
je 0x417105
mov ebx, eax
mov dword [eax], esi
movzx eax, word [esp + 0x10]
rol di, 8
mov word [ebx + 4], ax
mov word [ebx + 6], di
movsd xmm0, qword [esp + 0x50]
movsd qword [ebx + 0x18], xmm0
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
movsd qword [ebx + 0x10], xmm1
movsd qword [ebx + 8], xmm0
movsd xmm0, qword [esp + 0xc0]
movsd xmm1, qword [esp + 0xc8]
movsd qword [esp + 0x110], xmm1
movsd qword [esp + 0x108], xmm0
push 0x28
pop esi
xor eax, eax
inc eax
mov edi, eax
mov dword [esp + 4], eax
lea ecx, [esp + 0x40]
lea edx, [esp + 0x108]
call fcn.004473e0
mov eax, dword [esp + 0x40]
cmp eax, 2
je 0x416915
mov edx, dword [esp + 0x130]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x114]
cmp dword [esp + 4], edi
movsd xmm0, qword [edx + 0x10]
movzx ecx, word [edx + 0x18]
movsd xmm1, qword [edx + 8]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [edx]
mov word [esp + 0x98], cx
movsd qword [esp + 0x88], xmm1
movzx ecx, word [esp + 0x44]
movsd qword [esp + 0x80], xmm0
movzx edx, word [eax]
lea eax, [esp + 0x82]
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
movsd qword [esp + 0x28], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [esp + 0x20], xmm0
movsd xmm2, qword [esp + 0x20]
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [esp + 0x28]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0xe8], xmm2
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xf8], xmm0
jne 0x4168c7
mov eax, edi
mov word [esp + 0x1c], dx
mov word [esp + 0xc], cx
inc eax
je 0x417120
lea ecx, [edi + edi]
cmp ecx, eax
cmova eax, ecx
push 4
pop ecx
cmp eax, ecx
cmovbe eax, ecx
push 0x20
pop ecx
mul ecx
seto cl
setno ch
test edi, edi
cmove ebx, edi
test cl, cl
jne 0x417120
test eax, eax
js 0x417120
mov dword [esp + 8], eax
movzx eax, word [esp + 0xc]
movzx edx, word [esp + 0x1c]
test ebx, ebx
je 0x416875
shl edi, 5
mov ecx, eax
cmp edi, dword [esp + 8]
je 0x4168b8
test edi, edi
je 0x416891
call fcn.0044b6bc
push dword [esp + 8]
push ebx
push 0
push eax
call fcn.0044b684
jmp 0x4168ac
xor ebx, ebx
mov bl, ch
mov ecx, dword [esp + 8]
shl ebx, 2
test ecx, ecx
je 0x41688d
mov edx, ebx
call fcn.0042c420
jmp 0x4168ac
mov ecx, eax
jmp 0x4168b8
cmp dword [esp + 8], 0
push 4
pop ebx
je 0x4168c0
call fcn.0044b6bc
push dword [esp + 8]
push 0
push eax
call fcn.0044b694
movzx edx, word [esp + 0x1c]
movzx ecx, word [esp + 0xc]
mov ebx, eax
test ebx, ebx
je 0x41710d
mov edi, dword [esp + 8]
shr edi, 5
mov eax, dword [esp + 0x10]
rol dx, 8
inc dword [esp + 4]
mov dword [ebx + esi - 8], eax
mov word [ebx + esi - 4], cx
mov word [ebx + esi - 2], dx
movsd xmm0, qword [esp + 0xe8]
movsd xmm1, qword [esp + 0xf0]
movsd qword [ebx + esi], xmm0
movsd qword [ebx + esi + 8], xmm1
movsd xmm0, qword [esp + 0xf8]
movsd qword [ebx + esi + 0x10], xmm0
add esi, 0x20
jmp 0x416733
push dword [esp + 0x108]
call fcn.0044b7fc
mov eax, dword [esp + 4]
shl eax, 5
add eax, ebx
jmp 0x415cfc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x80]
mov byte [esp + 0x20], 1
mov dword [esp + 0x80], eax
call fcn.00446a00
jmp 0x416438
mov ebx, dword [esp + 0x10c]
lea ecx, [esp + 0x20]
mov dword [ecx + 8], esi
mov dword [esp + 0xdc], ebx
and dword [esp + 0xd8], 0
call fcn.0040520f
lea ecx, [esp + 0xc0]
call fcn.004050d6
lea ecx, [esp + 0xb0]
call fcn.00435706
jmp 0x416993
mov ebx, dword [esp + 0xdc]
lea eax, [0x43aafc]
lea ecx, [0x45a90a]
mov dword [esp + 0x40], eax
mov eax, 0xffffd34d
add eax, dword [esp + 0x40]
push ecx
push 0x12
lea edi, [esp + 0x48]
push edi
call eax
add esp, 0xc
lea esi, [esp + 0x80]
mov edx, edi
mov ecx, esi
call fcn.00404ae1
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x170]
movsd xmm0, qword [esi]
mov dword [esp + 0x174], ebx
mov byte [esi], 1
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov dword [esp + 0x188], ebx
and dword [esp + 0x178], 0
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x160], eax
xor eax, eax
movsd qword [esp + 0x158], xmm0
inc eax
push eax
push esi
push eax
push 6
push ebx
call fcn.0044b7d4
cmp eax, 0xffffffff
je 0x416a28
mov byte [esp + 0x40], 3
jmp 0x416a36
call fcn.0044b824
and dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x40]
call fcn.00405a61
and dword [esp + 0x80], 0
push esi
push 0x8004667e
push ebx
call fcn.0044b7ec
test eax, eax
mov dword [esp + 0x10], ebx
je 0x416a6b
call fcn.0044b6ec
and dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
jmp 0x416a70
mov byte [esp + 0x40], 3
lea esi, [esp + 0x40]
mov ecx, esi
call fcn.00405a61
lea edi, [esp + 0x106]
xor ebx, ebx
and word [edi], 0
cmp ebx, 2
jae 0x416ac3
mov edx, dword [esp + 0x10]
mov ecx, esi
push 2
push edi
call fcn.00447bb0
pop eax
pop ecx
mov eax, dword [esp + 0x44]
add ebx, eax
cmp dword [esp + 0x40], 1
jne 0x416a88
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov dword [edx], 1
jmp 0x416ba3
movzx eax, word [esp + 0x106]
lea ebx, [esp + 0x134]
mov ecx, ebx
rol ax, 8
movzx edx, ax
mov word [esp + 4], ax
call fcn.0040a72d
mov edi, dword [ebx]
mov ebx, dword [ebx + 8]
xor esi, esi
cmp si, word [esp + 4]
jae 0x416b28
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push ebx
push edi
call fcn.00447bb0
pop eax
pop ecx
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x40], 1
je 0x416b83
add esi, eax
mov ecx, edi
mov edx, ebx
push 0x45ab30
push eax
call fcn.00406611
pop ecx
pop ecx
mov edi, eax
mov ebx, edx
jmp 0x416aec
mov eax, dword [esp + 0x13c]
movsd xmm0, qword [esp + 0x134]
lea ecx, [esp + 0x28]
lea esi, [esp + 0x40]
lea edx, [esp + 0x20]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
and dword [ecx - 4], 0
and dword [ecx - 8], 0
mov ecx, esi
call fcn.0040f91f
mov edi, dword [esi + 4]
cmp dword [esi], 1
jne 0x416bac
lea ecx, [esp + 0x40]
mov eax, dword [ecx + 8]
mov dword [ecx], edi
mov dword [ecx + 4], eax
call fcn.004038fd
mov ebx, dword [esp + 0x10]
mov esi, eax
mov edi, 0x459430
jmp 0x416f90
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
lea ecx, [esp + 0x134]
call fcn.00435706
mov ebx, dword [esp + 0x10]
jmp 0x416fbc
mov dword [esp + 0xb0], 8
and dword [esp + 0xb4], 0
and dword [esp + 0xb8], 0
xor edx, edx
lea ebx, [esp + 0x20]
push 8
pop eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 8], eax
xor eax, eax
cmp edi, eax
je 0x416e3d
mov dword [esp + 0xd4], edx
lea ecx, [esp + 0x40]
mov edx, ebx
mov dword [esp + 4], eax
call fcn.0041ca0a
mov esi, dword [esp + 0x44]
cmp dword [esp + 0x40], 1
je 0x416f44
mov eax, dword [esi + 8]
mov ecx, esi
mov dword [esp + 0xc8], eax
movsd xmm0, qword [esi]
movsd qword [esp + 0xc0], xmm0
call fcn.0040a76d
lea ecx, [esp + 0x40]
mov edx, ebx
call fcn.0041ca0a
mov esi, dword [esp + 0x44]
cmp dword [esp + 0x40], 1
je 0x416f4a
mov eax, dword [esi + 8]
mov ecx, esi
mov dword [esp + 0x110], eax
movsd xmm0, qword [esi]
movsd qword [esp + 0x108], xmm0
call fcn.0040a76d
mov byte [esp + 0xe8], 0
lea ecx, [esp + 0x40]
mov edx, ebx
push 1
lea esi, [esp + 0xec]
push esi
call fcn.0040ab2b
pop eax
pop ecx
cmp byte [esp + 0x40], 3
jne 0x416f50
xor edi, edi
movzx ebx, byte [esp + 0xe8]
inc edi
mov ecx, edi
mov edx, edi
call fcn.0040a74c
mov ecx, eax
mov edx, edi
mov byte [eax], bl
call fcn.0042c470
movsd xmm0, qword [esp + 0xc0]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x110]
lea edx, [esp + 0x140]
movsd qword [esp + 0x140], xmm0
movsd xmm0, qword [esp + 0x108]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x148], eax
lea ecx, [esp + 0x40]
movsd qword [esp + 0xe8], xmm0
push 0
push 0
push ebx
push esi
call fcn.004143c3
add esp, 0x10
push 0x28
pop ecx
push 8
pop ebx
mov edx, ebx
call fcn.0040a74c
push 0xa
pop edx
mov edi, eax
lea esi, [esp + 0x40]
mov ecx, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edi, [esp + 0x80]
mov esi, eax
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edi, [esp + 0x40]
call fcn.0042c470
push 0xa
pop ecx
lea esi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 4]
mov edi, dword [esp + 0xc]
cmp eax, edi
jne 0x416da6
mov eax, edi
inc eax
je 0x417116
lea ecx, [edi + edi]
cmp ecx, eax
cmova eax, ecx
push 4
pop ecx
cmp eax, ecx
cmovbe eax, ecx
xor esi, esi
push 0x28
pop ecx
mul ecx
mov ecx, eax
jo 0x416d81
push 8
pop edx
call fcn.00406437
mov esi, edx
test edi, edi
je 0x416db3
mov edx, dword [esp + 8]
imul ecx, edi, 0x28
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], ecx
push 8
pop ecx
mov dword [esp + 0xf0], ecx
jmp 0x416dbb
mov edx, dword [esp + 0xd4]
mov edi, dword [esp + 8]
jmp 0x416e16
and dword [esp + 0xe8], 0
mov edx, eax
lea eax, [esp + 0xe8]
lea ecx, [esp + 0x140]
push eax
push esi
call fcn.00435478
pop eax
pop ecx
mov edi, dword [esp + 0x144]
mov edx, dword [esp + 0x148]
cmp dword [esp + 0x140], 1
je 0x41711a
mov eax, edx
xor edx, edx
mov dword [esp + 0xb0], edi
push 0x28
pop ecx
div ecx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 4]
mov dword [esp + 8], edi
inc eax
add edi, edx
push 0xa
pop ecx
lea esi, [esp + 0x40]
add edx, 0x28
lea ebx, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xb8], eax
mov edi, dword [esp + 0x1c]
jmp 0x416be2
push 0xc
pop edi
push 4
pop esi
mov ecx, edi
mov edx, esi
call fcn.0040a74c
mov ecx, dword [esp + 0xb8]
mov edx, esi
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0xb0]
mov ecx, dword [eax + 8]
movsd qword [eax], xmm0
mov dword [esp + 0xe0], ecx
mov ecx, eax
movsd xmm0, qword [eax]
movsd qword [esp + 0xd8], xmm0
call fcn.0042c470
mov ecx, edi
mov edx, esi
call fcn.0040a74c
movsd xmm0, qword [esp + 0xd8]
mov ebx, eax
movsd qword [eax], xmm0
mov eax, dword [esp + 0xe0]
mov dword [ebx + 8], eax
mov dword [esp + 0x40], 0xa0f000c
mov dword [esp + 0x44], 0xa0b0a0b
push 8
pop eax
lea esi, [esp + 0x80]
lea edx, [esp + 0x174]
mov ecx, esi
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00403715
pop eax
pop ecx
mov eax, dword [esi]
cmp al, 3
jne 0x416fd6
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x80]
lea edx, [esp + 0x158]
mov dword [esp + 4], ebx
mov ecx, esi
mov dword [esp + 0x140], eax
call fcn.0042ec50
lea ebx, [esp + 0x40]
mov ecx, esi
mov dword [ebx], 1
and dword [ebx + 4], 0
and dword [ebx + 8], 0
mov edx, ebx
call fcn.0041c9b4
test eax, eax
je 0x417007
lea ecx, [esp + 0xe8]
mov dword [ecx], eax
mov dword [ecx + 4], 0x459430
call fcn.004051e6
xor esi, esi
mov bl, 1
jmp 0x417043
mov edi, dword [esp + 0x48]
jmp 0x416f80
mov edi, dword [esp + 0x48]
jmp 0x416f74
lea ecx, [esp + 0x40]
movsd xmm0, qword [ecx]
movsd qword [ecx], xmm0
call fcn.004038fd
lea ecx, [esp + 0x108]
mov esi, eax
call fcn.00435706
mov edi, 0x459430
lea ecx, [esp + 0xc0]
call fcn.00435706
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0xb0]
call fcn.00405902
lea ecx, [esp + 0x40]
mov dword [ecx], esi
mov dword [ecx + 4], edi
call fcn.004051e6
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x28]
and dword [eax + 8], 0
mov dword [eax + 4], 0xc01
mov dword [eax], 1
call fcn.00435706
push ebx
call fcn.0044b80c
lea ecx, [esp + 0x158]
call fcn.00435706
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
mov dword [edx + 8], ecx
mov ecx, ebx
mov dword [edx + 4], eax
mov dword [edx], 1
call fcn.00405902
push 4
pop edx
mov ecx, ebx
call fcn.0042c470
lea ecx, [esp + 0x28]
jmp 0x416b9e
lea edi, [esp + 0xe8]
lea edx, [esp + 0x140]
mov ecx, edi
push ebx
push 9
call fcn.00419543
pop eax
pop ecx
mov ebx, dword [edi]
cmp bl, 3
jne 0x417033
lea ecx, [esp + 0x40]
call fcn.00435706
jmp 0x417051
mov esi, dword [esp + 0xec]
mov edi, ebx
shrd edi, esi, 8
shr esi, 8
lea ecx, [esp + 0x40]
call fcn.00435706
cmp bl, 3
jne 0x417083
lea ecx, [esp + 0x80]
call fcn.00435706
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 4]
mov dword [edx + 4], eax
movsd xmm0, qword [ecx]
movsd qword [edx + 8], xmm0
mov eax, dword [ecx + 8]
mov dword [edx + 0x10], eax
and dword [edx], 0
push 4
pop edx
jmp 0x4170c4
mov ecx, dword [esp + 0x70]
shld esi, edi, 8
shl edi, 8
movzx eax, bl
or eax, edi
mov dword [ecx + 8], esi
mov dword [ecx + 4], eax
mov dword [ecx], 1
lea ecx, [esp + 0x80]
call fcn.00435706
push dword [esp + 0x10]
call fcn.0044b80c
mov esi, dword [esp + 4]
mov ecx, esi
call fcn.00405902
push 4
pop edx
mov ecx, esi
call fcn.0042c470
lea ecx, [esp + 0x28]
call fcn.00435706
jmp 0x416fc2
push 7
pop edx
mov ecx, esi
push 0x461900
jmp 0x4170fd
push 8
pop edx
push 0x461910
call fcn.00430f20
jmp 0x417102
push 8
pop ecx
push 7
pop edx
push 0x461920
call fcn.00430ec0
pop eax
ud2
push 0x20
pop ecx
push 4
pop edx
jmp 0x417129
push 4
pop edx
mov ecx, dword [esp + 8]
jmp 0x417129
xor edx, edx
jmp 0x41711c
mov eax, edi
test edx, edx
jne 0x417127
call fcn.0042e8c0
ud2
mov ecx, eax
call fcn.0042e8b0
ud2