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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x40768e
mov eax, dword fs:[0]
push eax
sub esp, 0x1e0
push ebx
push esi
push edi
mov eax, dword [0x40a018]
xor eax, esp
push eax
lea eax, [esp + 0x1f0]
mov dword fs:[0], eax
xor ecx, ecx
xor ebx, ebx
mov eax, 2
mov edx, 4
mul edx
seto cl
mov dword [esp + 0x90], ebx
neg ecx
or ecx, eax
push ecx
call fcn.004066aa
mov dword [esp + 0x1d4], eax
lea eax, [esp + 0xf8]
lea ecx, [esp + 0x108]
mov dword [esp + 0x1b0], eax
lea edx, [esp + 0x160]
mov eax, ecx
add esp, 4
mov dword [esp + 0x8c], ebx
mov dword [esp + 0xdc], 7
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1a8], edx
mov dword [esp + 0x1b0], eax
jmp 0x404bd2
xor ebx, ebx
push 0x5b4
call fcn.004066aa
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x1f8], ebx
cmp eax, ebx
je 0x404c14
push 0x4033f0
push 0x403390
push 7
lea esi, [eax + 4]
push 0xd0
push esi
mov dword [eax], 7
call fcn.00406809
mov dword [esp + 0x18], esi
jmp 0x404c18
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1f8], 0xffffffff
mov edi, 7
mov eax, str.sky.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
call fcn.00405e40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x214], 1
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
mov edx, esi
mov dword [esp + 0x2c], esp
mov byte [ecx], bl
push edx
or eax, 0xffffffff
xor ebx, ebx
call fcn.004042e0
push ebx
mov ebx, dword [esp + 0x38]
mov ecx, ebx
call fcn.004034a0
mov dword [esp + 0x1f8], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x404c9f
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, 8
mov eax, str.temp.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
call fcn.00405e40
sub esp, 0x1c
mov dword [esp + 0x214], 2
mov ecx, esp
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], esp
lea esi, [ebx + 0xd0]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push edx
or eax, 0xffffffff
xor ebx, ebx
mov byte [ecx], 0
call fcn.004042e0
push 1
mov ecx, esi
call fcn.004034a0
mov dword [esp + 0x1f8], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x404d2a
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
lea edi, [ebx + 0xb]
mov eax, str.winddir.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
call fcn.00405e40
mov dword [esp + 0x1f8], 3
mov esi, dword [esp + 0x18]
sub esp, 0x1c
mov ecx, esp
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push edx
or eax, 0xffffffff
mov byte [ecx], bl
call fcn.004042e0
push 2
lea ecx, [esi + 0x1a0]
call fcn.004034a0
mov dword [esp + 0x1f8], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x404dab
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
lea edi, [ebx + 0xc]
mov eax, str.windgust.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
call fcn.00405e40
mov dword [esp + 0x1f8], 4
mov esi, dword [esp + 0x18]
sub esp, 0x1c
mov ecx, esp
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push edx
or eax, 0xffffffff
mov byte [ecx], bl
call fcn.004042e0
push 4
lea ecx, [esi + 0x270]
call fcn.004034a0
mov dword [esp + 0x1f8], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x404e2c
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
lea edi, [ebx + 0xd]
mov eax, str.windspeed.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
call fcn.00405e40
mov dword [esp + 0x1f8], 5
mov esi, dword [esp + 0x18]
sub esp, 0x1c
mov ecx, esp
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push edx
or eax, 0xffffffff
mov byte [ecx], bl
call fcn.004042e0
push 5
lea ecx, [esi + 0x340]
call fcn.004034a0
mov dword [esp + 0x1f8], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x404ead
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
lea edi, [ebx + 0xb]
mov eax, str.dewtemp.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
call fcn.00405e40
mov dword [esp + 0x1f8], 6
mov esi, dword [esp + 0x18]
sub esp, 0x1c
mov ecx, esp
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push edx
or eax, 0xffffffff
mov byte [ecx], bl
call fcn.004042e0
push 3
lea ecx, [esi + 0x410]
call fcn.004034a0
mov dword [esp + 0x1f8], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x404f2e
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
lea edi, [ebx + 0xa]
mov eax, str.hazard.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
call fcn.00405e40
mov dword [esp + 0x1f8], 7
mov edi, dword [esp + 0x18]
sub esp, 0x1c
mov ecx, esp
mov edx, esi
mov dword [esp + 0x2c], esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
push edx
or eax, 0xffffffff
mov byte [ecx], bl
call fcn.004042e0
push 6
lea ecx, [edi + 0x4e0]
call fcn.004034a0
mov dword [esp + 0x1f8], 0xffffffff
cmp dword [esp + 0x30], 0x10
jb 0x404fad
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0xe8], ecx
xor ebx, ebx
lea ecx, [esp + 0x15c]
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xec], edi
mov dword [esp + 0xf4], 0x408300
call dword [sym.imp.MSVCP100.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push ebx
push ebx
lea edx, [esp + 0x10c]
mov dword [esp + 0x200], 8
or dword [esp + 0x98], 1
push edx
lea ecx, [esp + 0x100]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov dword [esp + 0x1f8], 9
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 4]
mov dword [esp + ecx + 0xf4], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
lea ecx, [esp + 0x104]
call dword [sym.imp.MSVCP100.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov byte [esp + 0x1f8], 0xa
lea ecx, [esp + 0x104]
mov dword [esp + method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [esp + 0x154], bl
mov byte [esp + 0x14d], bl
call dword [sym.imp.MSVCP100.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov edx, dword [0x40a55c]
mov dword [esp + 0x158], ebx
mov dword [esp + 0x150], edx
mov dword [esp + 0x148], ebx
mov dword [esp + 0x1f8], 0xb
lea edi, [ebx + 0x12]
mov eax, str.AltitudeLevels.txt
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
call fcn.00405e40
mov byte [esp + 0x1f8], 0xc
cmp dword [esp + 0x30], 0x10
mov eax, dword [esp + 0x1c]
jae 0x4050c4
mov eax, esi
push eax
lea esi, [esp + 0x108]
call fcn.00404670
push ebx
test eax, eax
jne 0x4050f1
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax + 4]
push 2
lea ecx, [esp + ecx + 0xfc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
jmp 0x405109
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 4]
push ebx
lea ecx, [esp + ecx + 0xfc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov byte [esp + 0x1f8], 0xb
cmp dword [esp + 0x30], 0x10
jb 0x405126
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
fld dword [0x4083fc]
mov esi, dword [esp + 0x1d0]
sub esp, 0x34
mov eax, esp
fstp dword [eax]
mov dword [esp + 0x44], esp
fld dword [0x4083f8]
fstp dword [eax + 4]
fld dword [0x4083f4]
fstp dword [eax + 8]
fld dword [0x4083f0]
fst dword [eax + 0xc]
fstp dword [eax + 0x10]
fldz
fst dword [eax + 0x14]
mov dword [eax + 0x18], esi
fst dword [eax + 0x1c]
fst dword [eax + 0x20]
fst dword [eax + 0x24]
fld dword [0x4083ec]
mov dword [eax + 0x28], 2
fstp dword [eax + 0x2c]
fstp dword [eax + 0x30]
lea eax, [esp + 0x118]
push eax
call fcn.00406230
mov edi, dword [esp + 0x8c]
mov dword [esi + edi*4], eax
mov ecx, dword [esp + 0xf4]
mov edx, dword [ecx + 4]
mov dword [esp + edx + 0xf4], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov dword [esp + 0x1f8], 0xd
mov dword [esp + method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [esp + 0x1f8], 0xe
cmp dword [esp + 0x158], ebx
je 0x405205
mov eax, dword [esp + 0x114]
mov eax, dword [eax]
lea ecx, [esp + 0x14c]
cmp eax, ecx
jne 0x405205
mov eax, dword [esp + 0x144]
mov edx, dword [esp + 0x140]
push eax
push eax
push edx
lea ecx, [esp + 0x110]
call dword [sym.imp.MSVCP100.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::setg_char___char___char__]
cmp byte [esp + 0x154], bl
je 0x40526c
cmp dword [esp + 0x158], ebx
je 0x405236
lea ebx, [esp + 0x104]
call fcn.00404440
mov eax, dword [esp + 0x158]
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
xor ebx, ebx
lea ecx, [esp + 0x104]
mov byte [esp + 0x154], bl
mov byte [esp + 0x14d], bl
call dword [sym.imp.MSVCP100.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov ecx, dword [0x40a55c]
mov dword [esp + 0x158], ebx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x148], ebx
lea ecx, [esp + 0x104]
mov byte [esp + 0x1f8], 0xd
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
mov dword [esp + 0x1f8], 0xffffffff
mov edx, dword [esp + 0xf4]
mov ecx, dword [sym.imp.MSVCP100.dll_const_std::basic_istream_char__struct_std::char_traits_char__::vftable]
mov eax, dword [edx + 4]
mov dword [esp + eax + 0xf4], ecx
lea ecx, [esp + 0x15c]
call dword [sym.imp.MSVCP100.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
inc edi
mov dword [esp + 0x8c], edi
cmp edi, 2
jl 0x404bd0
fldz
xor edi, edi
fst dword [esp + 0x44]
mov dword [esp + 0x5c], edi
fst dword [esp + 0x48]
mov dword [esp + 0x60], edi
fst dword [esp + 0x4c]
mov dword [esp + 0x64], edi
fst dword [esp + 0x50]
mov dword [esp + 0x6c], edi
fst dword [esp + 0x54]
mov dword [esp + 0x70], edi
fst dword [esp + 0x58]
mov dword [esp + 0x74], edi
mov dword [esp + 0x1f8], 0xf
fld dword [0x4083e8]
fstp dword [esp + 0x3c]
push 1
fld dword [0x4083e4]
lea ecx, [esp + 0x60]
fstp dword [esp + 0x44]
fstp dword [esp + 0x14]
fld dword [0x4083e0]
fstp dword [esp + 0x18]
call fcn.00402460
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x405346
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x60]
fld dword [0x4083dc]
mov ecx, dword [esp + 0x5c]
fstp dword [esp + 0x10]
add eax, 8
fld dword [0x4083d8]
lea edx, [esp + 0x10]
fstp dword [esp + 0x14]
mov dword [esp + 0x60], eax
cmp edx, eax
jae 0x4053f4
cmp ecx, edx
ja 0x4053f4
mov ebx, edx
mov edx, dword [esp + 0x64]
sub ebx, ecx
sar ebx, 3
cmp eax, edx
jne 0x4053dd
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x40539e
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
mov edi, edx
sub edi, ecx
inc esi
sar edi, 3
cmp esi, edi
jbe 0x4053db
mov eax, edi
shr eax, 1
mov ecx, 0x1fffffff
sub ecx, eax
cmp ecx, edi
jae 0x4053bd
xor edi, edi
jmp 0x4053bf
add edi, eax
cmp edi, esi
jae 0x4053c5
mov edi, esi
push edi
lea ecx, [esp + 0x60]
call fcn.00402460
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
xor edi, edi
lea ebx, [ecx + ebx*8]
cmp eax, edi
je 0x405472
mov edx, dword [ebx]
mov dword [eax], edx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
jmp 0x405466
mov edx, dword [esp + 0x64]
cmp eax, edx
jne 0x405453
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x405416
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
mov edi, edx
sub edi, ecx
inc esi
sar edi, 3
cmp esi, edi
jbe 0x405453
mov eax, edi
shr eax, 1
mov edx, 0x1fffffff
sub edx, eax
cmp edx, edi
jae 0x405435
xor edi, edi
jmp 0x405437
add edi, eax
cmp edi, esi
jae 0x40543d
mov edi, esi
push edi
lea ecx, [esp + 0x60]
call fcn.00402460
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
xor edi, edi
cmp eax, edi
je 0x405472
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
fld dword [0x4083d4]
add eax, 8
fstp dword [esp + 0x10]
lea esi, [esp + 0x10]
fld dword [0x4083d0]
mov dword [esp + 0x60], eax
fstp dword [esp + 0x14]
cmp esi, eax
jae 0x40550a
cmp ecx, esi
ja 0x40550a
mov ebx, esi
sub ebx, ecx
sar ebx, 3
cmp eax, edx
jne 0x4054f7
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x4054be
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
sub edx, ecx
inc esi
sar edx, 3
cmp esi, edx
jbe 0x4054f7
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x1fffffff
sub edx, ecx
cmp edx, eax
jae 0x4054dd
xor eax, eax
jmp 0x4054df
add eax, ecx
cmp eax, esi
jae 0x4054e5
mov eax, esi
push eax
lea ecx, [esp + 0x60]
call fcn.00402460
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + ebx*8]
cmp eax, edi
je 0x405572
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x40556e
cmp eax, edx
jne 0x40555d
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x405528
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
sub edx, ecx
inc esi
sar edx, 3
cmp esi, edx
jbe 0x40555d
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x1fffffff
sub edx, ecx
cmp edx, eax
jae 0x405547
xor eax, eax
jmp 0x405549
add eax, ecx
cmp eax, esi
jae 0x40554f
mov eax, esi
push eax
lea ecx, [esp + 0x60]
call fcn.00402460
mov eax, dword [esp + 0x60]
cmp eax, edi
je 0x405572
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x60]
fldz
add eax, 8
fstp dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x70]
fld dword [0x4083cc]
lea ecx, [esp + 0x10]
fstp dword [esp + 0x14]
cmp ecx, eax
mov ecx, dword [esp + 0x6c]
jae 0x405622
lea edx, [esp + 0x10]
cmp ecx, edx
ja 0x405622
mov ebx, edx
mov edx, dword [esp + 0x74]
sub ebx, ecx
sar ebx, 3
cmp eax, edx
jne 0x40560b
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x4055ce
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
mov edi, edx
sub edi, ecx
inc esi
sar edi, 3
cmp esi, edi
jbe 0x40560b
mov eax, edi
shr eax, 1
mov ecx, 0x1fffffff
sub ecx, eax
cmp ecx, edi
jae 0x4055ed
xor edi, edi
jmp 0x4055ef
add edi, eax
cmp edi, esi
jae 0x4055f5
mov edi, esi
push edi
lea ecx, [esp + 0x70]
call fcn.00402460
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
lea esi, [ecx + ebx*8]
test eax, eax
je 0x40569e
mov edx, dword [esi]
mov dword [eax], edx
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
jmp 0x405692
mov edx, dword [esp + 0x74]
cmp eax, edx
jne 0x405681
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x405644
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
mov edi, edx
sub edi, ecx
inc esi
sar edi, 3
cmp esi, edi
jbe 0x405681
mov eax, edi
shr eax, 1
mov edx, 0x1fffffff
sub edx, eax
cmp edx, edi
jae 0x405663
xor edi, edi
jmp 0x405665
add edi, eax
cmp edi, esi
jae 0x40566b
mov edi, esi
push edi
lea ecx, [esp + 0x70]
call fcn.00402460
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
test eax, eax
je 0x40569e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
fld dword [0x4083dc]
add eax, 8
fstp dword [esp + 0x10]
lea esi, [esp + 0x10]
fld dword [0x4083c8]
mov dword [esp + 0x70], eax
fstp dword [esp + 0x14]
cmp esi, eax
jae 0x405736
cmp ecx, esi
ja 0x405736
mov edi, esi
sub edi, ecx
sar edi, 3
cmp eax, edx
jne 0x405723
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x4056ea
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
sub edx, ecx
inc esi
sar edx, 3
cmp esi, edx
jbe 0x405723
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x1fffffff
sub edx, ecx
cmp edx, eax
jae 0x405709
xor eax, eax
jmp 0x40570b
add eax, ecx
cmp eax, esi
jae 0x405711
mov eax, esi
push eax
lea ecx, [esp + 0x70]
call fcn.00402460
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + edi*8]
test eax, eax
je 0x40579e
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x40579a
cmp eax, edx
jne 0x405789
mov esi, eax
sub esi, ecx
sar esi, 3
cmp esi, 0x1ffffffe
jbe 0x405754
push 0x408234
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
sub edx, ecx
inc esi
sar edx, 3
cmp esi, edx
jbe 0x405789
mov eax, edx
mov ecx, eax
shr ecx, 1
mov edx, 0x1fffffff
sub edx, ecx
cmp edx, eax
jae 0x405773
xor eax, eax
jmp 0x405775
add eax, ecx
cmp eax, esi
jae 0x40577b
mov eax, esi
push eax
lea ecx, [esp + 0x70]
call fcn.00402460
mov eax, dword [esp + 0x70]
test eax, eax
je 0x40579e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x70]
fld dword [0x4083c4]
sub esp, 8
add eax, 8
fstp dword [esp + 4]
fld dword [0x4083d4]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x44]
fstp dword [esp]
call fcn.00401220
fldz
xor ebx, ebx
fst dword [esp + 0xa4]
fst dword [esp + 0xa8]
mov dword [esp + 0x94], 0x40837c
fst dword [esp + 0xac]
mov dword [esp + 0xbc], ebx
fst dword [esp + 0xb0]
mov dword [esp + 0xc0], ebx
fst dword [esp + 0xb4]
mov dword [esp + 0xc4], ebx
fstp dword [esp + 0xb8]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov byte [esp + 0x1f8], 0x10
fld dword [esp + 0x3c]
sub esp, 0x40
mov esi, esp
fstp dword [esi]
mov dword [esp + 0x50], esp
fld dword [esp + 0x80]
lea eax, [esi + 0x20]
fstp dword [esi + 4]
push eax
fld dword [esp + 0x88]
lea ecx, [esp + 0xa0]
fstp dword [esi + 8]
mov dword [esp + 0x54], esi
fld dword [esp + 0x8c]
fstp dword [esi + 0xc]
fld dword [esp + 0x90]
fstp dword [esi + 0x10]
fld dword [esp + 0x94]
fstp dword [esi + 0x14]
fld dword [esp + 0x98]
fstp dword [esi + 0x18]
fld dword [esp + 0x9c]
fstp dword [esi + 0x1c]
call fcn.00405ca0
add esi, 0x30
push esi
lea ecx, [esp + 0xb0]
mov byte [esp + 0x23c], 0x11
call fcn.00405ca0
lea ecx, [esp + 0xd4]
mov byte [esp + 0x238], 0x10
call fcn.00404a30
fld dword [esp + 0xe0]
fstp dword [esp + 0x98]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov byte [esp + 0x1f8], 0x12
fld dword [0x4083fc]
lea ecx, [esp + 0x7c]
push ecx
sub esp, 0x34
mov eax, esp
fstp dword [eax]
mov dword [esp + 0x48], esp
fld dword [0x4083f8]
fstp dword [eax + 4]
fld dword [0x4083f4]
fstp dword [eax + 8]
fld dword [0x4083f0]
fst dword [eax + 0xc]
fst dword [eax + 0x10]
fldz
mov edx, dword [esp + 0x208]
fst dword [eax + 0x14]
mov dword [eax + 0x18], edx
fst dword [eax + 0x1c]
fst dword [eax + 0x20]
sub esp, 0x10
fst dword [eax + 0x24]
mov dword [eax + 0x28], 2
fld dword [0x4083ec]
mov dword [esp + 0x58], esp
fst dword [eax + 0x2c]
fxch st(1)
fst dword [eax + 0x30]
mov eax, esp
fst dword [esp + 0xc]
sub esp, 0xc
fld dword [0x4083c0]
mov dword [esp + 0x64], esp
fstp dword [eax]
fld dword [0x4083bc]
fstp dword [eax + 4]
fxch st(1)
fstp dword [eax + 8]
mov eax, esp
fld dword [0x4083b8]
fstp dword [eax]
fxch st(1)
fstp dword [eax + 4]
fstp dword [eax + 8]
lea eax, [esp + 0xe8]
push eax
call fcn.00401630
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
je 0x405a3b
xor esi, esi
lea ecx, [ecx]
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
fld dword [esi + ecx + 8]
push edx
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [esi + ecx + 4]
fstp dword [esp + 8]
fld dword [esi + ecx]
mov ecx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
fstp dword [esp]
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___float_]
push eax
call fcn.00405f30
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___float_]
push eax
call fcn.00405f30
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___float_]
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
add esi, 0xc
cmp edi, eax
jb 0x4059c0
mov byte [esp + 0x1f8], 0x10
cmp ecx, ebx
je 0x405a63
lea ecx, [esp + 0x7c]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov ecx, dword [esp + 0x7c]
mov esi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
push ecx
call esi
add esp, 4
jmp 0x405a69
mov esi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
mov byte [esp + 0x1f8], 0xf
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
cmp dword [esp + 0xcc], ebx
je 0x405aa6
lea ecx, [esp + 0xcc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov edx, dword [esp + 0xcc]
push edx
call esi
add esp, 4
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
cmp dword [esp + 0xbc], ebx
je 0x405ade
lea ecx, [esp + 0xbc]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov eax, dword [esp + 0xbc]
push eax
call esi
add esp, 4
mov dword [esp + 0x1f8], 0xffffffff
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
cmp dword [esp + 0x6c], ebx
je 0x405b18
lea ecx, [esp + 0x6c]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov ecx, dword [esp + 0x6c]
push ecx
call esi
add esp, 4
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
cmp dword [esp + 0x5c], ebx
je 0x405b3e
lea ecx, [esp + 0x5c]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov edx, dword [esp + 0x5c]
push edx
call esi
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x1f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret