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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x254
push 3
call fcn.00484d94
push 0x48f480
call fcn.00410114
add esp, 8
lea esi, [esp + 0x1e8]
lea ebx, [esp + 0x244]
lea ecx, [esp + 0x1e6]
lea edx, [esp + 0x1e4]
lea eax, [esp + 0x1e2]
push eax
push edx
push ecx
push ebx
push esi
call fcn.0040299c
fldz
fstp dword [esp + 0x228]
movsx edx, word [esp + 0x244]
lea ecx, [esp + 0x1c0]
xor eax, eax
mov dword [esp + 0x1c0], eax
push 0x4a0260
push eax
push 0x48f484
push 0x384ff00
push edx
push ecx
call fcn.00410740
mov dword [0x4a50a0], 0x58
push 0x48f488
call fcn.00412790
add esp, 0x1c
mov dword [0x4a50ac], 0x48f62c
mov dword [0x4a50a4], eax
xor eax, eax
mov dword [0x4a50b8], 1
mov dword [0x4a50a8], eax
mov dword [0x4a50b0], eax
mov dword [0x4a50bc], 0x4a02a0
mov dword [0x4a50b4], eax
mov dword [0x4a50c0], 0x200
mov dword [0x4a50c8], eax
mov dword [0x4a50d0], 0x48f63c
mov dword [0x4a50cc], eax
mov dword [0x4a50d4], 0x800
mov dword [0x4a50dc], 0x48f640
mov dword [0x4a50e4], eax
mov dword [0x4a50e8], eax
push 0x4a50a0
call sub.comdlg32.dll_GetOpenFileNameA
fld dword [esp + 0x228]
mov dword [esp + 0x210], eax
fild dword [esp + 0x210]
fucompp
fnstsw ax
sahf
jne 0x40117f
mov dword [esp + 0x1c0], 0
lea edx, [esp + 0x1c0]
lea eax, [esp + 0x200]
mov dword [esp + 0x200], 0x16
mov dword [esp + 0x204], 0x48f648
push eax
push 0x48f48c
push 0x384ff00
push 0xfffffffffffffffe
push edx
call fcn.00412aa8
add esp, 0x14
jmp 0x401059
lea edx, [esp + 0x220]
xor eax, eax
mov byte [esp + 0x220], al
push eax
push 1
push edx
push 0x200
push 0x4a02a0
call fcn.00415e74
add esp, 0x14
add eax, 0xffffffff
movsx eax, ax
test eax, eax
jle 0x402478
xor ecx, ecx
push ecx
cdq
push edx
push eax
push 0x4a02a0
push ecx
push 0x200
push 0x4a5100
call fcn.00416074
add esp, 0x1c
lea ebx, [esp + 0x1ec]
lea ecx, [esp + 0x174]
lea edx, [esp + 0x1ea]
lea eax, [esp + 0x24c]
push eax
push edx
push ecx
push 3
push 0x48f660
push 0x200
push 0x4a5100
push ebx
call fcn.00403a10
movsx eax, word [esp + 0x1ea]
test eax, eax
jne 0x402457
movsx edx, word [esp + 0x244]
mov dword [esp + 0x1c0], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x120], 0x200
lea eax, [esp + 0x120]
mov dword [esp + 0x124], 0x4a5100
push 0x4a0244
push eax
push 0x48f494
push 0x384ff00
push edx
push ecx
call fcn.00410740
add esp, 0x18
movsx edx, word [esp + 0x244]
mov dword [esp + 0x1c0], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x208], 0x12
lea eax, [esp + 0x208]
mov dword [esp + 0x20c], str.Choose_output_file
push eax
push 0x48f49c
push 0x384ff00
push edx
push ecx
call fcn.00412aa8
mov dword [0x4a50a0], 0x58
push 0x48f4a4
call fcn.00412790
add esp, 0x18
mov dword [0x4a50ac], 0x48f62c
mov dword [0x4a50a4], eax
xor eax, eax
mov dword [0x4a50b8], 1
mov dword [0x4a50a8], eax
mov dword [0x4a50b0], eax
mov dword [0x4a50bc], 0x4a02a0
mov dword [0x4a50b4], eax
mov dword [0x4a50c0], 0x200
mov dword [0x4a50c8], eax
mov dword [0x4a50d0], 0x48f678
mov dword [0x4a50cc], eax
mov dword [0x4a50d4], 0x800
mov dword [0x4a50dc], 0x48f67c
mov dword [0x4a50e4], eax
mov dword [0x4a50e8], eax
push 0x4a50a0
call sub.comdlg32.dll_GetSaveFileNameA
fld dword [esp + 0x228]
mov dword [esp + 0x210], eax
fild dword [esp + 0x210]
fucompp
fnstsw ax
sahf
jne 0x4013a8
mov dword [esp + 0x1c0], 0
lea edx, [esp + 0x1c0]
lea eax, [esp + 0x1f8]
mov dword [esp + 0x1f8], 0x16
mov dword [esp + 0x1fc], str.No_file_name_specified
push eax
push 0x48f4a8
push 0x384ff00
push 0xfffffffffffffffe
push edx
call fcn.00412aa8
add esp, 0x14
jmp 0x401268
lea edx, [esp + 0x218]
xor eax, eax
mov byte [esp + 0x218], al
push eax
push 1
push edx
push 0x200
push 0x4a02a0
call fcn.00415e74
add esp, 0x14
add eax, 0xffffffff
movsx eax, ax
test eax, eax
jle 0x402471
xor ecx, ecx
push ecx
cdq
push edx
push eax
push 0x4a02a0
push ecx
push 0x200
push 0x4a5300
call fcn.00416074
add esp, 0x1c
lea ecx, [esp + 0x1ec]
lea edx, [esp + 0x1ea]
lea eax, [esp + 0x1e0]
push eax
push edx
push 0x48f5c8
push 3
push 0x48f69c
push 0x200
push 0x4a5300
push ecx
call fcn.00403a10
movsx eax, word [esp + 0x1ea]
test eax, eax
jne 0x402457
fld dword [0x48f6dc]
xor esi, esi
mov eax, 0x40e
mov dword [esp + 0x170], eax
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x168], esi
mov dword [esp + 0x164], esi
mov dword [esp + 0x16c], esi
xor edi, edi
fstp st(0)
movsx edx, word [esp + 0x24c]
mov dword [esp + 0x1c0], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x230], 0x64
lea eax, [esp + 0x230]
mov dword [esp + 0x234], 0x4a5500
push 0x4a0238
push eax
push 0x48f4b0
push 0x384ff02
push edx
push ecx
call fcn.0041655c
add esp, 0x18
cmp eax, 0xffffffff
je 0x4023da
mov ebx, 0x4a5500
mov edx, 1
xor eax, eax
push eax
push edx
push str.GIiT_R__
push 0x64
push ebx
call fcn.00415e74
add esp, 0x14
movsx eax, ax
lea edx, [ebx + eax - 1]
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x198], edx
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], ebx
add eax, 2
movsx edx, ax
lea eax, [edx - 1]
neg eax
add eax, edx
test eax, eax
jle 0x4023d3
lea ecx, [edx + 0x4a54ff]
mov dword [esp + 0x1a8], ecx
cdq
xor ebx, ebx
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], edx
lea edx, [esp + 0x198]
mov eax, 2
push ebx
push eax
push 0x4a55fc
push ebx
push eax
push edx
call fcn.00416318
add esp, 0x18
add esp, 0xffffffe8
mov dword [esp + 0xc], 1
mov eax, 0x4a5500
mov edx, 0x64
mov dword [esp + 0x10], 0x4a55f0
mov ecx, 0x4a04a0
mov dword [esp + 0x14], 0x48f5cc
call fcn.004027fc
fld dword [0x4a55f0]
fld dword [0x48f6dc]
fucompp
fnstsw ax
sahf
je 0x402379
fld dword [0x48f6dc]
mov edx, 0x4a55f4
fld dword [edx]
fucompp
fnstsw ax
sahf
je 0x402379
mov edi, 0x4a5500
mov ecx, 0x64
mov edx, 1
xor eax, eax
push eax
push edx
push 0x48f6a4
push ecx
push edi
call fcn.00415e74
mov ebx, eax
xor edx, edx
push edx
mov ecx, 1
mov edx, 0x64
push ecx
push 0x48f6a8
push edx
push edi
call fcn.00415e74
add ebx, eax
movsx edx, bx
mov dword [esp + 0x264], edx
xor ecx, ecx
mov ebx, 1
push ecx
push ebx
mov eax, 0x64
push 0x48f6ac
push eax
push edi
call fcn.00415e74
add esp, 0x3c
add eax, 0xfffffffe
movsx edi, ax
cmp edi, 0xfffffffe
je 0x402316
lea edx, [edi - 1]
mov eax, edx
neg eax
add eax, 0x64
test eax, eax
jle 0x40230f
lea ecx, [edx + 0x4a5500]
cdq
xor ebx, ebx
push ebx
push ebx
push 1
push 0x48f6b0
push edx
push eax
push ecx
call fcn.00416074
push 0
push 1
push 0x48f6b4
push 0x64
push 0x4a5500
call fcn.00415e74
add esp, 0x30
mov dword [esp + 0x240], eax
movsx ebx, ax
test ebx, ebx
jle 0x402303
lea ecx, [ebx - 1]
neg ecx
add ecx, 0x64
test ecx, ecx
jle 0x4022fc
mov dword [esp + 0x178], 0x48f6b8
lea edx, [ebx + 5]
movsx edx, dx
lea eax, [edx - 1]
mov dword [esp + 0x180], 2
neg eax
add eax, 0x64
test eax, eax
mov dword [esp + 0x184], 0
jle 0x4022f5
lea edx, [edx + 0x4a54ff]
mov dword [esp + 0x188], edx
cdq
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], edx
lea edx, [ebx + 0x4a54ff]
mov dword [esp + 0x238], edx
mov eax, ecx
cdq
push edx
push ecx
mov ecx, dword [esp + 0x240]
push ecx
push 0
push 2
lea eax, [esp + 0x18c]
push eax
call fcn.00416318
add esp, 0x18
movzx edx, byte [0x4a55fc]
movzx eax, byte [0x4a55fd]
add edi, 0xfffffffd
movsx edi, di
shl edx, 8
or edx, eax
cmp edx, 0x4732
je 0x4021a2
test esi, esi
jne 0x40174f
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x401471
jmp 0x401772
cmp esi, 1
je 0x401f6c
cmp esi, 2
je 0x401aa3
jg 0x40192c
add esi, 1
movsx esi, si
jmp 0x401471
mov eax, dword [esp + 0x1f0]
test eax, eax
je 0x401784
cmp eax, 1
je 0x4017f4
jmp 0x401767
add esp, 0xfffffff0
lea ebx, [esp + 0x100]
mov dword [esp + 0xc], ebx
mov eax, 0x4a55f0
mov edx, 0x4a55f4
lea ecx, [esp + 0x104]
call fcn.0040248c
mov eax, dword [0x4a55f0]
movsx ecx, word [esp + 0x1e0]
mov dword [esp + 0x1c0], 0
mov dword [esp + 0xf8], eax
lea ebx, [esp + 0x1c0]
lea edx, [esp + 0xf8]
push 0x4a01d8
push edx
push 0x48f5b4
push 0x384ff00
push ecx
push ebx
call fcn.00410740
add esp, 0x18
jmp 0x401767
add esp, 0xfffffff0
lea ebx, [esp + 0x158]
mov dword [esp + 0xc], ebx
mov eax, 0x4a55f0
mov edx, 0x4a55f4
lea ecx, [esp + 0x15c]
call fcn.0040248c
mov eax, dword [esp + 0x170]
movsx ebx, word [esp + 0x1e0]
mov dword [esp + 0x1c0], 0
add eax, 2
lea ecx, [esp + 0x90]
movsx edx, ax
mov dword [esp + 0x170], edx
mov word [esp + 0x90], dx
lea eax, [esp + 0x1c0]
push 0x4a0174
push ecx
push 0x48f58c
push 0x384ff00
push ebx
push eax
call fcn.00410740
mov dword [esp + 0x48], 2
lea edx, [esp + 0x1d8]
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], 0x4a55fc
push eax
push 0x48f594
push edx
call fcn.0041101c
mov eax, dword [esp + 0x170]
mov dword [esp + 0xbc], eax
lea ecx, [esp + 0x1e4]
lea edx, [esp + 0xbc]
push edx
push 0x48f59c
push ecx
call fcn.0041101c
mov eax, dword [esp + 0x178]
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0x1f0]
lea edx, [esp + 0xd0]
push edx
push 0x48f5a4
push ecx
call fcn.0041101c
add esp, 0x3c
mov eax, dword [esp + 0x240]
movsx edx, ax
lea eax, [edx - 1]
neg eax
add eax, edi
test eax, eax
jle 0x401928
mov dword [esp + 0x38], eax
lea eax, [edx + 0x4a54ff]
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x38]
push edx
push 0x48f5ac
push ecx
call fcn.0041101c
add esp, 0xc
jmp 0x401767
xor eax, eax
jmp 0x4018fb
mov eax, dword [esp + 0x1f0]
cmp eax, 1
je 0x401a8d
mov ebx, dword [esp + 0x170]
add ebx, 2
movsx eax, bx
mov dword [esp + 0x170], eax
add esp, 0xfffffff0
lea eax, [esp + 0x158]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x15c]
mov eax, 0x4a55f0
mov edx, 0x4a55f4
call fcn.0040248c
mov eax, dword [esp + 0x170]
movsx ecx, word [esp + 0x1e0]
mov dword [esp + 0x1c0], 0
mov word [esp + 0x150], ax
lea ebx, [esp + 0x1c0]
lea edx, [esp + 0x150]
push 0x4a0174
push edx
push 0x48f4b8
push 0x384ff00
push ecx
push ebx
call fcn.00410740
mov dword [esp + 0x128], 2
lea edx, [esp + 0x1d8]
lea eax, [esp + 0x128]
mov dword [esp + 0x12c], 0x4a55fc
push eax
push 0x48f4c0
push edx
call fcn.0041101c
mov eax, dword [esp + 0x170]
mov dword [esp + 0x17c], eax
lea ecx, [esp + 0x1e4]
lea edx, [esp + 0x17c]
push edx
push 0x48f4c8
push ecx
call fcn.0041101c
mov eax, dword [esp + 0x178]
mov dword [esp + 0x190], eax
lea ecx, [esp + 0x1f0]
lea edx, [esp + 0x190]
push edx
push 0x48f4d0
push ecx
call fcn.0041101c
add esp, 0x3c
mov eax, dword [esp + 0x240]
movsx edx, ax
lea eax, [edx - 1]
neg eax
add eax, edi
test eax, eax
jle 0x401a89
mov dword [esp + 0x118], eax
lea eax, [edx + 0x4a54ff]
mov dword [esp + 0x11c], eax
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x118]
push edx
push 0x48f4d8
push ecx
call fcn.0041101c
add esp, 0xc
jmp 0x401767
xor eax, eax
jmp 0x401a53
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x40193c
xor esi, esi
jmp 0x40193c
mov eax, dword [esp + 0x168]
test eax, eax
je 0x401abc
cmp eax, 1
je 0x401de6
jmp 0x401dd5
add esp, 0xfffffff0
lea ebx, [esp + 0xb8]
mov dword [esp + 0xc], ebx
mov eax, 0x4a55f0
mov edx, 0x4a55f4
lea ecx, [esp + 0xb4]
call fcn.0040248c
mov eax, dword [0x4a55f8]
mov edx, dword [0x4a55f0]
movsx ebx, word [esp + 0x1e0]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov dword [esp + 0x1c0], 0
lea eax, [esp + 0x1c0]
lea ecx, [esp + 0xb0]
push 0x4a0078
push ecx
push 0x48f508
push 0x384ff00
push ebx
push eax
call fcn.00410740
add esp, 0x18
add esp, 0xffffffe4
lea ebx, [esp + 0x108]
mov dword [esp + 0xc], ebx
lea eax, [esp + 0x104]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1fc]
mov dword [esp + 0x18], eax
lea edx, [esp + 0x110]
mov eax, 0x48f5d4
lea ecx, [esp + 0x10c]
call fcn.004024bc
mov eax, dword [esp + 0x16c]
add dword [esp + 0x170], 2
mov ecx, eax
add eax, 0x10
movsx edx, ax
mov dword [esp + 0x16c], edx
lea eax, [ecx - 1]
neg eax
add eax, edx
test eax, eax
jle 0x401f65
lea ecx, [ecx + 0x4a557f]
cdq
xor ebx, ebx
push ebx
push ebx
push 0x11
push 0x48f6c4
push edx
push eax
push ecx
call fcn.00416074
mov eax, dword [esp + 0x18c]
movsx ecx, word [esp + 0x1fc]
mov dword [esp + 0x1dc], 0
mov word [esp + 0xd4], ax
lea ebx, [esp + 0x1dc]
lea edx, [esp + 0xd4]
push 0x4a0174
push edx
push 0x48f510
push 0x384ff00
push ecx
push ebx
call fcn.00410740
mov dword [esp + 0x74], 2
lea edx, [esp + 0x1f4]
lea eax, [esp + 0x74]
mov dword [esp + 0x78], 0x4a55fc
push eax
push 0x48f518
push edx
call fcn.0041101c
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x100], eax
lea ecx, [esp + 0x200]
lea edx, [esp + 0x100]
push edx
push 0x48f520
push ecx
call fcn.0041101c
mov eax, dword [esp + 0x134]
mov dword [esp + 0x114], eax
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x114]
push edx
push 0x48f528
push ecx
call fcn.0041101c
add esp, 0x58
mov eax, dword [esp + 0x164]
movsx edx, ax
lea eax, [edx - 1]
neg eax
add eax, dword [esp + 0x16c]
test eax, eax
jle 0x401f5e
mov dword [esp + 0x48], eax
lea eax, [edx + 0x4a557f]
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x48]
push edx
push 0x48f530
push ecx
call fcn.0041101c
mov eax, dword [esp + 0x17c]
movsx ebx, word [esp + 0x1ec]
mov dword [esp + 0x1cc], 0
add eax, 2
lea ecx, [esp + 0xdc]
movsx edx, ax
mov dword [esp + 0x17c], edx
mov word [esp + 0xdc], dx
lea eax, [esp + 0x1cc]
push 0x4a0174
push ecx
push 0x48f538
push 0x384ff00
push ebx
push eax
call fcn.00410740
mov dword [esp + 0x74], 2
lea edx, [esp + 0x1e4]
lea eax, [esp + 0x74]
mov dword [esp + 0x78], 0x4a55fc
push eax
push 0x48f540
push edx
call fcn.0041101c
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x108], eax
lea ecx, [esp + 0x1f0]
lea edx, [esp + 0x108]
push edx
push 0x48f548
push ecx
call fcn.0041101c
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x11c], eax
lea ecx, [esp + 0x1fc]
lea edx, [esp + 0x11c]
push edx
push 0x48f550
push ecx
call fcn.0041101c
add esp, 0x48
mov eax, dword [esp + 0x240]
movsx edx, ax
lea eax, [edx - 1]
neg eax
add eax, edi
test eax, eax
jle 0x401f57
mov dword [esp + 0x58], eax
lea eax, [edx + 0x4a54ff]
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x58]
push edx
push 0x48f558
push ecx
call fcn.0041101c
add esp, 0xc
mov eax, 1
mov dword [esp + 0x168], eax
jmp 0x401767
mov ebx, dword [esp + 0x240]
movsx ecx, word [esp + 0x1e0]
mov dword [esp + 0x1c0], 0
mov eax, 0x5c0
mov word [esp + 0x60], ax
lea esi, [esp + 0x1c0]
lea edx, [esp + 0x60]
push 0x4a00d8
push edx
push 0x48f4e0
push 0x384ff00
push ecx
push esi
call fcn.00410740
mov dword [esp + 0x28], 2
lea edx, [esp + 0x1d8]
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 0x4a55fc
push eax
push 0x48f4e8
push edx
call fcn.0041101c
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x8c], eax
lea ecx, [esp + 0x1e4]
lea edx, [esp + 0x8c]
push edx
push 0x48f4f0
push ecx
call fcn.0041101c
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0x1f0]
lea edx, [esp + 0xa0]
push edx
push 0x48f4f8
push ecx
call fcn.0041101c
add esp, 0x3c
movsx edx, bx
lea eax, [edx - 1]
sub edi, eax
test edi, edi
jle 0x401f50
mov dword [esp + 0x18], edi
lea eax, [edx + 0x4a54ff]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x18]
push edx
push 0x48f500
push ecx
call fcn.0041101c
add esp, 0xc
add esp, 0xffffffe4
lea ebx, [esp + 0xc0]
mov dword [esp + 0xc], ebx
lea esi, [esp + 0xc4]
mov dword [esp + 0x10], esi
lea edi, [esp + 0xc8]
mov dword [esp + 0x14], edi
lea eax, [esp + 0x1fc]
mov dword [esp + 0x18], eax
lea edx, [esp + 0x108]
mov eax, 0x48f5d0
lea ecx, [esp + 0x104]
call fcn.004024bc
call fcn.00404684
xor eax, eax
push eax
push eax
push 0x384ff00
push eax
push 0x48f6d8
call fcn.00417e28
mov eax, 1
add esp, 0x268
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor edi, edi
jmp 0x401eb6
xor eax, eax
jmp 0x401dad
xor eax, eax
jmp 0x401ca1
xor eax, eax
jmp 0x401ba8
mov eax, dword [esp + 0x168]
test eax, eax
je 0x401f85
cmp eax, 1
je 0x40206e
jmp 0x401767
add esp, 0xfffffff0
lea ebx, [esp + 0xf8]
mov dword [esp + 0xc], ebx
mov eax, 0x4a55f0
mov edx, 0x4a55f4
lea ecx, [esp + 0xfc]
call fcn.0040248c
mov ecx, dword [0x4a55f8]
mov dword [esp + 0xe4], ecx
mov edx, 0x4a5580
mov eax, 0x4a5500
mov ebx, dword [eax]
mov dword [edx], ebx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [edx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x20], ecx
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x24], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x28], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov ecx, dword [eax + 0x34]
mov dword [edx + 0x34], ecx
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov ecx, dword [eax + 0x3c]
mov dword [edx + 0x3c], ecx
mov ecx, dword [eax + 0x40]
mov dword [edx + 0x40], ecx
mov ecx, dword [eax + 0x44]
mov dword [edx + 0x44], ecx
mov ecx, dword [eax + 0x48]
mov dword [edx + 0x48], ecx
mov ecx, dword [eax + 0x4c]
mov dword [edx + 0x4c], ecx
mov ecx, dword [eax + 0x50]
mov dword [edx + 0x50], ecx
mov ecx, dword [eax + 0x54]
mov dword [edx + 0x54], ecx
mov ecx, dword [eax + 0x58]
mov dword [edx + 0x58], ecx
mov ecx, dword [eax + 0x5c]
mov dword [edx + 0x5c], ecx
mov eax, dword [eax + 0x60]
mov dword [edx + 0x60], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x16c], edi
mov dword [esp + 0x164], eax
jmp 0x401767
movsx edx, word [esp + 0x1e0]
lea ecx, [esp + 0x1c0]
xor eax, eax
mov dword [esp + 0x1c0], eax
push 0x4a013c
push eax
push 0x48f560
push 0x384ff00
push edx
push ecx
call fcn.00410740
movsx ecx, word [esp + 0x1f8]
mov dword [esp + 0x1d8], 0
mov eax, 0x5be
mov word [esp + 0x90], ax
lea ebx, [esp + 0x1d8]
lea edx, [esp + 0x90]
push 0x4a00d8
push edx
push 0x48f564
push 0x384ff00
push ecx
push ebx
call fcn.00410740
mov dword [esp + 0x50], 2
lea edx, [esp + 0x1f0]
lea eax, [esp + 0x50]
mov dword [esp + 0x54], 0x4a55fc
push eax
push 0x48f56c
push edx
call fcn.0041101c
mov eax, dword [esp + 0x128]
mov dword [esp + 0xbc], eax
lea ecx, [esp + 0x1fc]
lea edx, [esp + 0xbc]
push edx
push 0x48f574
push ecx
call fcn.0041101c
mov eax, dword [esp + 0x130]
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0x208]
lea edx, [esp + 0xd0]
push edx
push 0x48f57c
push ecx
call fcn.0041101c
add esp, 0x54
mov eax, dword [esp + 0x240]
movsx edx, ax
lea eax, [edx - 1]
neg eax
add eax, edi
test eax, eax
jle 0x40219e
mov dword [esp + 0x28], eax
lea eax, [edx + 0x4a54ff]
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x28]
push edx
push 0x48f584
push ecx
call fcn.0041101c
add esp, 0xc
jmp 0x401767
xor eax, eax
jmp 0x402171
lea eax, [ebx + 2]
movsx edx, ax
lea eax, [edx - 1]
neg eax
add eax, edx
test eax, eax
jle 0x4022ee
mov dword [esp + 0x224], edi
lea ecx, [edx + 0x4a54ff]
cdq
xor edi, edi
push edi
push 3
push edi
push 1
push 0x48f6bc
push edx
push eax
push ecx
mov edi, dword [esp + 0x244]
call fcn.004160fc
add esp, 0x20
test eax, eax
jne 0x4022e3
mov dword [esp + 0x224], edi
mov dword [esp + 0x248], ebx
mov dword [esp + 0x21c], esi
mov eax, 2
mov ebx, eax
mov edx, dword [esp + 0x248]
add ebx, 1
movsx ebx, bx
lea ecx, [edx + ebx]
movsx esi, cx
lea ecx, [esi - 1]
mov eax, esi
sub eax, ecx
test eax, eax
jle 0x4022dc
lea ecx, [ecx + 0x4a5500]
cdq
xor edi, edi
push edi
push 3
push edi
push 1
push 0x48f6bc
push edx
push eax
push ecx
call fcn.004160fc
add esp, 0x20
test eax, eax
je 0x402208
mov edi, dword [esp + 0x224]
mov edx, esi
mov esi, dword [esp + 0x21c]
add edx, 0xffffffff
mov eax, edx
neg eax
add eax, 0x64
test eax, eax
jle 0x4022d5
mov ecx, eax
mov dword [esp + 0x128], 0x48f6c0
mov dword [esp + 0x130], 1
mov dword [esp + 0x134], 0
jle 0x4022d1
lea ebx, [edx + 0x4a5500]
mov dword [esp + 0x138], ebx
cdq
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], edx
mov eax, ecx
cdq
push edx
push ecx
push ebx
push 0
push 2
lea ecx, [esp + 0x13c]
push ecx
call fcn.00416318
add esp, 0x18
add edi, 1
movsx edi, di
jmp 0x40173a
xor eax, eax
jmp 0x402290
mov ecx, 0
jmp 0x40226d
xor eax, eax
jmp 0x40222a
add ebx, 2
movsx edx, bx
jmp 0x40225d
xor eax, eax
jmp 0x4021b7
xor eax, eax
jmp 0x4016cb
xor ecx, ecx
jmp 0x401694
mov dword [esp + 0x240], edi
jmp 0x40173a
xor eax, eax
jmp 0x401640
mov edx, 0x64
mov eax, 0x64
lea ebx, [eax - 1]
movzx ecx, byte [ebx + 0x4a5500]
cmp ecx, 0x20
jne 0x402369
mov eax, ebx
add edx, 0xffffffff
test edx, edx
jg 0x402320
fldz
fld1
faddp st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [esp + 0x108]
fldcw word [esp]
movsx edi, word [esp + 0x108]
jmp 0x40162e
mov dword [esp + 0x210], eax
fild dword [esp + 0x210]
jmp 0x40233a
test edi, edi
jle 0x4023cf
movsx edx, word [esp + 0x244]
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], 0x4a5500
lea ecx, [esp + 0x1c0]
lea eax, [esp + 0x100]
push 0x4a0044
push eax
push 0x48f5bc
push 0x384ff00
push edx
push ecx
call fcn.00410740
add esp, 0x18
jmp 0x401f25
xor edi, edi
jmp 0x40237d
xor eax, eax
jmp 0x401521
mov eax, dword [esp + 0x1f0]
cmp eax, 1
je 0x402420
movsx eax, word [esp + 0x24c]
mov dword [esp + 0x1c0], 0
lea edx, [esp + 0x1c0]
push 0x384ff00
push eax
push edx
call fcn.004185e8
add esp, 0xc
mov eax, 1
mov dword [esp + 0x1f0], eax
jmp 0x401471
movsx edx, word [esp + 0x244]
lea ecx, [esp + 0x1c0]
xor eax, eax
mov dword [esp + 0x1c0], eax
push 0x4a0028
push eax
push 0x48f5c4
push 0x384ff00
push edx
push ecx
call fcn.00410740
add esp, 0x18
jmp 0x401f25
lea edx, [esp + 0x1ea]
lea eax, [esp + 0x244]
push eax
push edx
call fcn.004045f2
jmp 0x401f25
xor eax, eax
jmp 0x4013dc
xor eax, eax
jmp 0x4011b3