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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov esi, esp
mov eax, dword [0x4353ac]
xor eax, ebp
mov dword [esi + 0xd0], eax
mov eax, dword [0x4354a0]
mov ecx, dword [0x4354a4]
lea edx, [eax - 1]
imul edx, eax
mov eax, 0x9e49f491
not edx
not eax
or edx, 0xfffffffe
mov dword [esi + 0xac], eax
mov eax, 0xd4dfcbbc
cmp edx, 0xffffffff
not eax
sete byte [esi + 0x49]
cmp ecx, 0xa
mov ecx, 0x9a270844
mov dword [esi + 0xa8], eax
mov dword [esi + 0x88], eax
setl byte [esi + 0x4a]
jmp 0x40ca10
mov eax, dword [0x4354a0]
mov ebx, 0x2acefe06
mov edi, 0x358d1850
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, 0x358d1850
sete al
cmove ecx, ebx
cmp dword [0x4354a4], 0xa
setl dl
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, 0xf9cb2caf
jg 0x40cad0
cmp ecx, 0xaf14a142
jle 0x40cb40
cmp ecx, 0xe013c839
jg 0x40cc2c
cmp ecx, 0xb8fcfa84
jg 0x40cefe
cmp ecx, 0xaf14a143
je 0x40d275
cmp ecx, 0xb3ce55b8
je 0x40d29f
cmp ecx, 0xb8958881
jne 0x40ca10
mov eax, dword [0x4354a0]
mov edx, dword [0x4354a4]
mov edi, 0x962a7e
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x4c2799ab
cmovne edi, ebx
test eax, ecx
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
mov edi, dword [esi + 0x18]
add edi, dword [esi + 0xa8]
mov edx, dword [esi + 0x1c]
adc edx, dword [esi + 0xac]
add edi, 0xd4dfcbbc
adc edx, 0x9e49f491
xor edx, dword [esi + 4]
xor edi, dword [esi]
or edi, edx
sete byte [esi + 0x4f]
jmp 0x40ca10
cmp ecx, 0x358d184f
jle 0x40cbd0
cmp ecx, 0x5448b324
jg 0x40ce00
cmp ecx, 0x4abfbbcb
jg 0x40cf2c
cmp ecx, 0x358d1850
je 0x40d2c6
cmp ecx, 0x399cf55f
je 0x40d470
cmp ecx, 0x49af8775
jne 0x40ca10
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0x90
mov eax, 0x13c86d53
sbb ecx, 0
mov ecx, 0x88d21287
cmovb ecx, eax
jmp 0x40ca10
cmp ecx, 0x92ee1b5e
jle 0x40ce56
cmp ecx, 0xaa5c5bba
jg 0x40cf6a
cmp ecx, 0x92ee1b5f
je 0x40d590
cmp ecx, 0x9a270844
je 0x40d5c2
cmp ecx, 0xa818cff4
jne 0x40ca10
mov ecx, dword [esi + 0x6c]
push 0
push 1
push dword [esi + 0xc]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::read_char___long_long___int64__]
mov ecx, dword [eax]
add eax, dword [ecx + 4]
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
mov byte [esi + 0x4c], al
mov eax, dword [0x4354a0]
mov ebx, 0xb8fcfa85
mov edi, 0x2f66a9bd
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, 0x2f66a9bd
jmp 0x40c9eb
cmp ecx, 0x13c86d52
jle 0x40ce9b
cmp ecx, 0x2501c056
jg 0x40cff6
cmp ecx, 0x13c86d53
je 0x40d5ea
cmp ecx, 0x2057b717
je 0x40d5ff
cmp ecx, 0x2340d869
jne 0x40ca10
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ecx, dword [esi + 0xc]
mov edi, 0xd1a16f26
mov byte [ecx], al
mov eax, dword [0x4354a0]
mov edx, dword [0x4354a4]
jmp 0x40d8f3
cmp ecx, 0xee110cd4
jg 0x40d041
cmp ecx, 0xe013c83a
je 0x40d615
cmp ecx, 0xe0c023d2
je 0x40d64c
cmp ecx, 0xebef8d72
jne 0x40ca10
mov eax, dword [esi + 0x50]
mov eax, dword [esi + 0x44]
mov dword [esi + 0x6c], eax
mov ecx, dword [esi + 0x6c]
push dword [esi + 0x50]
call dword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____thiscall_std::basic_istream_char__struct_std::char_traits_char__::tellg_void_]
mov eax, dword [esi + 0x50]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
add ecx, dword [eax]
adc edx, dword [eax + 4]
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], edx
mov eax, dword [esi + 0x5c]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x6c]
sub esp, 0x18
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::seekg_class_std::fpos_struct__Mbstatet__]
mov eax, dword [esi + 0x40]
mov edi, esp
add eax, 0x10
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x24]
sub esp, 0x20
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xb
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x24]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x5a0ef92f
lea edx, [eax - 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x659db1cb
cmovne edi, ebx
test edx, eax
mov eax, edi
sete byte [esi + 0xb4]
cmove eax, ebx
cmp ecx, 0xa
mov ecx, 0x16864e19
cmovge eax, edi
setl byte [esi + 0xbb]
nop word cs:[eax + eax]
cmp ecx, 0x5a0ef92e
jg 0x40cde0
cmp ecx, 0xaca43792
je 0x40cdf5
cmp ecx, 0x16864e19
jne 0x40cd90
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40cd90
cmp ecx, 0x5a0ef92f
je 0x40cdf9
cmp ecx, 0x659db1cb
jne 0x40cd90
jmp 0x40d760
mov ecx, eax
jmp 0x40cd90
mov ecx, 0xaca43792
jmp 0x40cd90
cmp ecx, 0x6c8c0e2e
jg 0x40d086
cmp ecx, 0x5448b325
je 0x40d870
cmp ecx, 0x5ac109ac
je 0x40d893
cmp ecx, 0x6a779249
jne 0x40ca10
mov eax, dword [0x4354a0]
mov ebx, 0xfed1002c
mov edi, 0xe0c023d2
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0xe0c023d2
jmp 0x40c9eb
cmp ecx, 0x88d21286
jle 0x40d210
cmp ecx, 0x88d21287
je 0x40d8a9
cmp ecx, 0x8d272c4a
je 0x40d8d9
cmp ecx, 0x8f477e6d
jne 0x40ca10
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ecx, dword [esi + 0xc]
mov byte [ecx], al
mov ecx, 0x2340d869
jmp 0x40ca10
cmp ecx, 0xfebedbe8
jle 0x40d236
cmp ecx, 0xfebedbe9
je 0x40d8e3
cmp ecx, 0xfed1002c
je 0x40d927
cmp ecx, 0x962a7e
jne 0x40ca10
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov ecx, 0xb8958881
jmp 0x40ca10
cmp ecx, 0xb8fcfa85
je 0x40da40
cmp ecx, 0xc8c4f381
je 0x40da56
cmp ecx, 0xd1a16f26
jne 0x40ca10
mov ecx, 0xfb9d5581
jmp 0x40ca10
cmp ecx, 0x4abfbbcc
je 0x40da7d
cmp ecx, 0x4c2799ab
je 0x40dba0
cmp ecx, 0x53d7e74e
jne 0x40ca10
push str._n_nendif_____STUB_n
push dword [esi + 0x14]
call fcn.00414db0
add esp, 8
mov ecx, 0xee110cd5
jmp 0x40ca10
cmp ecx, 0xaa5c5bbb
je 0x40dbb6
cmp ecx, 0xad5ccf99
je 0x40dbee
cmp ecx, 0xadb53459
jne 0x40ca10
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
push dword [esi + 4]
push dword [esi]
push eax
push 0
call fcn.0040f280
add esp, 0x10
mov ecx, dword [esi + 0xc]
mov edi, 0x2057b717
mov byte [ecx], al
mov eax, dword [0x4354a0]
mov edx, dword [0x4354a4]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp edx, 0xa
setl ah
xor ah, al
mov eax, 0xaf14a143
cmovne eax, edi
cmp ecx, 0xffffffff
mov ecx, eax
cmove ecx, edi
mov edi, dword [esi]
cmp edx, 0xa
cmovge ecx, eax
or edi, dword [esi + 4]
sete byte [esi + 0x4d]
jmp 0x40ca10
cmp ecx, 0x2501c057
je 0x40dc30
cmp ecx, 0x2acefe06
je 0x40dc55
cmp ecx, 0x2f66a9bd
jne 0x40ca10
mov ecx, dword [esi + 0x6c]
push 0
push 1
push dword [esi + 0xc]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::read_char___long_long___int64__]
mov ecx, dword [eax]
add eax, dword [ecx + 4]
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
mov ecx, 0xa818cff4
jmp 0x40ca10
cmp ecx, 0xee110cd5
je 0x40dc73
cmp ecx, 0xf49e2a68
je 0x40dca5
cmp ecx, 0xf962c5e1
jne 0x40ca10
mov eax, dword [esi]
mov ecx, dword [esi + 4]
add eax, 1
adc ecx, 0
mov dword [esi + 0x90], eax
mov dword [esi + 0x8c], ecx
mov ecx, 0x86075c6f
jmp 0x40ca10
cmp ecx, 0x6c8c0e2f
je 0x40e947
cmp ecx, 0x72ac9417
jne 0x40ca10
push eax
mov eax, esp
mov dword [esi + 0xc], eax
sub esp, 0xb8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x44], eax
push eax
sub esp, 0xbc
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x54], eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x50], eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x5c], eax
push eax
sub esp, 0x14
mov eax, esp
mov dword [esi + 0x24], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x28], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x2c], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x30], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x34], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x38], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x3c], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x60], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x64], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x68], eax
lea eax, [ebp + 8]
mov dword [esi + 0x94], eax
lea eax, [ebp + 0x20]
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0xc]
mov eax, dword [esi + 0xc]
mov byte [eax], 0
mov eax, dword [esi + 0x44]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x44]
push 1
call fcn.00414800
mov edi, dword [esi + 0x44]
mov ecx, dword [esi + 0x98]
call fcn.0041fb70
mov ecx, edi
push 0x40
push 0x25
push eax
call fcn.00428aa0
mov eax, dword [esi + 0x54]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x54]
push 1
call fcn.004149a0
mov edi, dword [esi + 0x54]
mov ecx, dword [esi + 0x94]
call fcn.0041fb70
mov ecx, edi
push 0x40
push 0x33
push eax
call fcn.00428cc0
mov eax, dword [esi + 0x58]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
add ecx, dword [esi + 0x58]
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
mov ecx, dword [0x4354a0]
mov edx, dword [0x4354a4]
mov byte [esi + 0x10], al
lea edi, [ecx - 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete ah
cmp edx, 0xa
setl bl
xor bl, ah
mov ebx, 0xf49e2a68
mov eax, 0x885a1a97
cmovne ebx, eax
test ecx, edi
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
mov dl, byte [esi + 0x10]
cmovge ecx, ebx
mov byte [esi + 0x4b], dl
jmp 0x40ca10
cmp ecx, 0x86075c6f
je 0x40dd12
cmp ecx, 0x885a1a97
jne 0x40ca10
cmp byte [esi + 0x4b], 0
mov ecx, 0x2501c057
jmp 0x40dc48
cmp ecx, 0xf9cb2cb0
je 0x40dd5a
cmp ecx, 0xfb9d5581
jne 0x40ca10
mov eax, dword [0x4354a0]
mov ebx, 0xadb53459
mov edi, 0xaf14a143
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, 0xaf14a143
jmp 0x40c9eb
mov eax, dword [esi + 0xc]
movzx eax, byte [eax]
push dword [esi + 4]
push dword [esi]
push eax
push 0
call fcn.0040f280
add esp, 0x10
mov ecx, dword [esi + 0xc]
mov byte [ecx], al
mov ecx, 0xadb53459
mov eax, dword [esi]
mov eax, dword [esi + 4]
jmp 0x40ca10
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi]
add eax, 0xffffffff
adc ecx, 0xffffffff
cmp edx, eax
mov eax, dword [esi + 4]
sbb eax, ecx
mov ecx, 0xad5ccf99
mov eax, 0xf9cb2cb0
cmovb ecx, eax
jmp 0x40ca10
mov eax, dword [esi + 0x50]
mov edi, dword [esi + 0x44]
mov ecx, edi
push dword [esi + 0x50]
call dword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____thiscall_std::basic_istream_char__struct_std::char_traits_char__::tellg_void_]
mov eax, dword [esi + 0x50]
mov ecx, dword [eax]
mov dword [esi + 0x7c], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 0xa4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x5c]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, dword [esi + 0x5c]
sub esp, 0x18
movsd xmm0, qword [eax + 0x10]
mov ecx, edi
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::seekg_class_std::fpos_struct__Mbstatet__]
mov dword [esi + 0x10], esp
mov edi, dword [esi + 0x40]
mov eax, dword [esi + 0x24]
add edi, 0x10
sub esp, 0x20
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xb
call fcn.00411ef0
add esp, 0x20
mov esp, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
mov dword [esi + 0x10], edi
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x24]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov ecx, dword [0x43545c]
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop word [eax + eax]
cmp ecx, 0x5a0ef92e
jg 0x40d450
cmp ecx, 0xaca43792
je 0x40d465
cmp ecx, 0x16864e19
jne 0x40d400
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov ebx, 0xaca43792
mov edi, 0x5a0ef92f
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x5a0ef92f
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x40d400
cmp ecx, 0x5a0ef92f
je 0x40d469
cmp ecx, 0x659db1cb
jne 0x40d400
jmp 0x40de70
mov ecx, eax
jmp 0x40d400
mov ecx, 0xaca43792
jmp 0x40d400
mov eax, dword [esi + 0x64]
mov edi, esp
push eax
sub esp, 0x1c
mov ecx, dword [esi + 0xc]
mov ebx, esp
lea eax, [ebx + 4]
movzx ecx, byte [ecx]
push ecx
push eax
call fcn.00411880
add esp, 8
mov eax, dword [esi + 0x64]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 3
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x64]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x64]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov ecx, dword [0x43545c]
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, 0x5a0ef92e
jg 0x40d570
cmp ecx, 0xaca43792
je 0x40d585
cmp ecx, 0x16864e19
jne 0x40d520
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40d520
cmp ecx, 0x5a0ef92f
je 0x40d589
cmp ecx, 0x659db1cb
jne 0x40d520
jmp 0x40df80
mov ecx, eax
jmp 0x40d520
mov ecx, 0xaca43792
jmp 0x40d520
mov eax, dword [0x4354a0]
mov edx, dword [0x4354a4]
mov edi, 0x358d1850
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xebef8d72
jmp 0x40dc1b
mov al, byte [esi + 0x49]
mov cl, byte [esi + 0x4a]
mov edi, 0x72ac9417
mov edx, eax
xor dl, cl
mov edx, 0xf49e2a68
cmovne edx, edi
test cl, cl
mov ecx, edx
cmovne ecx, edi
test al, al
cmove ecx, edx
jmp 0x40ca10
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ecx, dword [esi + 0xc]
mov byte [ecx], al
mov ecx, 0xfb9d5581
jmp 0x40ca10
cmp byte [esi + 0x4d], 0
mov ecx, 0xc8c4f381
mov eax, 0x6a779249
cmovne ecx, eax
jmp 0x40ca10
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov eax, dword [esi]
mov eax, dword [esi + 4]
mov ecx, 0xaa5c5bbb
jmp 0x40ca10
mov eax, dword [esi + 0x3c]
mov edi, esp
push eax
sub esp, 0x1c
mov ecx, dword [esi + 0xc]
mov ebx, esp
lea eax, [ebx + 4]
movzx ecx, byte [ecx]
push ecx
push eax
call fcn.00411880
add esp, 8
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x3c]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x3c]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, dword [0x43545c]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
cmp ecx, 0x5a0ef92e
jg 0x40d740
cmp ecx, 0xaca43792
je 0x40d755
cmp ecx, 0x16864e19
jne 0x40d6f0
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40d6f0
cmp ecx, 0x5a0ef92f
je 0x40d759
cmp ecx, 0x659db1cb
jne 0x40d6f0
jmp 0x40df8a
mov ecx, eax
jmp 0x40d6f0
mov ecx, 0xaca43792
jmp 0x40d6f0
mov eax, dword [esi + 0x28]
mov edi, esp
push eax
sub esp, 0x1c
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xc
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x28]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x5a0ef92f
lea edx, [eax - 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x659db1cb
cmovne edi, ebx
test edx, eax
mov eax, edi
sete byte [esi + 0xb4]
cmove eax, ebx
cmp ecx, 0xa
mov ecx, 0x16864e19
cmovge eax, edi
setl byte [esi + 0xbb]
nop
cmp ecx, 0x5a0ef92e
jg 0x40d850
cmp ecx, 0xaca43792
je 0x40d865
cmp ecx, 0x16864e19
jne 0x40d800
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov ebx, 0xaca43792
mov edi, 0x5a0ef92f
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x5a0ef92f
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x40d800
cmp ecx, 0x5a0ef92f
je 0x40d869
cmp ecx, 0x659db1cb
jne 0x40d800
jmp 0x40df94
mov ecx, eax
jmp 0x40d800
mov ecx, 0xaca43792
jmp 0x40d800
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
add ecx, dword [esi + 0x40]
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
xor al, 1
mov ecx, 0x6c8c0e2f
mov dword [esi + 0x88], eax
jmp 0x40ca10
cmp byte [esi + 0x4e], 0
mov ecx, 0xad5ccf99
mov eax, 0xb3ce55b8
cmovne ecx, eax
jmp 0x40ca10
mov eax, dword [0x4354a0]
mov edx, dword [0x4354a4]
mov edi, 0xa818cff4
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp edx, 0xa
setl ah
xor ah, al
mov eax, 0x2f66a9bd
jmp 0x40d911
mov ecx, 0xf962c5e1
jmp 0x40ca10
mov eax, dword [0x4354a0]
mov edx, dword [0x4354a4]
mov edi, 0x2340d869
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp edx, 0xa
setl ah
xor ah, al
mov eax, 0x8f477e6d
cmovne eax, edi
cmp ecx, 0xffffffff
mov ecx, eax
cmove ecx, edi
cmp edx, 0xa
cmovge ecx, eax
jmp 0x40ca10
mov eax, dword [esi + 0x3c]
mov edi, esp
push eax
sub esp, 0x1c
mov ecx, dword [esi + 0xc]
mov ebx, esp
lea eax, [ebx + 4]
movzx ecx, byte [ecx]
push ecx
push eax
call fcn.00411880
add esp, 8
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x3c]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x3c]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x659db1cb
lea edx, [eax - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x5a0ef92f
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
mov ecx, 0x16864e19
cmovge eax, edx
setl byte [esi + 0xbb]
nop
cmp ecx, 0x5a0ef92e
jg 0x40da20
cmp ecx, 0xaca43792
je 0x40da35
cmp ecx, 0x16864e19
jne 0x40d9d0
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov ebx, 0xaca43792
mov edi, 0x5a0ef92f
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x5a0ef92f
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x40d9d0
cmp ecx, 0x5a0ef92f
je 0x40da39
cmp ecx, 0x659db1cb
jne 0x40d9d0
jmp 0x40e0b0
mov ecx, eax
jmp 0x40d9d0
mov ecx, 0xaca43792
jmp 0x40d9d0
cmp byte [esi + 0x4c], 0
mov ecx, 0xfb9d5581
mov eax, 0xfebedbe9
cmovne ecx, eax
jmp 0x40ca10
mov eax, dword [0x4354a0]
mov ebx, 0xaa5c5bbb
mov edi, 0xe013c83a
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, 0xe013c83a
jmp 0x40c9eb
mov eax, dword [esi + 0x68]
mov edi, esp
push eax
sub esp, 0x1c
mov ecx, dword [esi + 0xc]
mov ebx, esp
lea eax, [ebx + 4]
movzx ecx, byte [ecx]
push ecx
push eax
call fcn.00411880
add esp, 8
mov eax, dword [esi + 0x68]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 1
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x68]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x68]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x659db1cb
lea edx, [eax - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x5a0ef92f
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
mov ecx, 0x16864e19
cmovge eax, edx
setl byte [esi + 0xbb]
nop word cs:[eax + eax]
nop
cmp ecx, 0x5a0ef92e
jg 0x40db80
cmp ecx, 0xaca43792
je 0x40db95
cmp ecx, 0x16864e19
jne 0x40db30
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40db30
cmp ecx, 0x5a0ef92f
je 0x40db99
cmp ecx, 0x659db1cb
jne 0x40db30
jmp 0x40e0ee
mov ecx, eax
jmp 0x40db30
mov ecx, 0xaca43792
jmp 0x40db30
cmp byte [esi + 0x4f], 0
mov ecx, 0x4abfbbcc
mov eax, 0x399cf55f
cmovne ecx, eax
jmp 0x40ca10
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edi, 0x5ac109ac
mov ebx, 0xe013c83a
inc eax
not eax
or eax, 0xfffffff0
cmp eax, 0xffffffff
mov eax, dword [0x4354a0]
sete byte [esi + 0x4e]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0xe013c83a
jmp 0x40e0d1
mov eax, dword [0x4354a0]
mov edx, dword [0x4354a4]
mov edi, 0x962a7e
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xb8958881
cmovne edi, ebx
test eax, ecx
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
jmp 0x40ca10
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
add ecx, dword [esi + 0x40]
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
test al, al
mov ecx, 0x92ee1b5f
mov eax, 0xee110cd5
cmovne ecx, eax
jmp 0x40ca10
mov dword [esi + 0x90], 0
mov ecx, 0x86075c6f
mov dword [esi + 0x8c], 0
jmp 0x40ca10
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
add ecx, dword [esi + 0x58]
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
test al, al
mov ecx, 0x5448b325
mov edx, 0x6c8c0e2f
mov dword [esi + 0x88], 0
cmovne ecx, edx
jmp 0x40ca10
push eax
sub esp, 0xb4
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0xbc
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
mov ecx, edi
push 1
call fcn.00414800
lea ecx, [ebp + 0x20]
call fcn.0041fb70
mov ecx, edi
push 0x40
push 0x25
push eax
call fcn.00428aa0
mov ecx, ebx
push 1
call fcn.004149a0
lea ecx, [ebp + 8]
call fcn.0041fb70
mov ecx, ebx
push 0x40
push 0x33
push eax
call fcn.00428cc0
mov eax, dword [edi]
add edi, dword [eax + 4]
mov ecx, edi
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
mov ecx, 0x72ac9417
jmp 0x40ca10
mov eax, dword [esi + 0x8c]
mov edx, 0xa0
mov dword [esi + 4], eax
mov eax, dword [esi + 0x90]
mov dword [esi], eax
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x70]
add ecx, edx
adc eax, 0
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 4]
mov edi, dword [esi]
cmp edi, ecx
mov ecx, 0x53d7e74e
sbb edx, eax
mov edx, 0x49af8775
cmovb ecx, edx
jmp 0x40ca10
mov eax, dword [esi + 0x60]
mov edi, esp
push eax
sub esp, 0x1c
mov ecx, dword [esi + 0xc]
mov ebx, esp
lea eax, [ebx + 4]
movzx ecx, byte [ecx]
push ecx
push eax
call fcn.00411880
add esp, 8
mov eax, dword [esi + 0x60]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 2
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x60]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x60]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x5a0ef92f
lea edx, [eax - 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x659db1cb
cmovne edi, ebx
test edx, eax
mov eax, edi
sete byte [esi + 0xb4]
cmove eax, ebx
cmp ecx, 0xa
mov ecx, 0x16864e19
cmovge eax, edi
setl byte [esi + 0xbb]
nop
cmp ecx, 0x5a0ef92e
jg 0x40de50
cmp ecx, 0xaca43792
je 0x40de65
cmp ecx, 0x16864e19
jne 0x40de00
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov ebx, 0xaca43792
mov edi, 0x5a0ef92f
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x5a0ef92f
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x40de00
cmp ecx, 0x5a0ef92f
je 0x40de69
cmp ecx, 0x659db1cb
jne 0x40de00
jmp 0x40e0f8
mov ecx, eax
jmp 0x40de00
mov ecx, 0xaca43792
jmp 0x40de00
mov eax, dword [esi + 0x28]
mov edi, esp
push eax
sub esp, 0x1c
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xc
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x28]
mov edi, dword [ecx + 0x10]
call fcn.0041fb70
push edi
push eax
push dword [esi + 0x10]
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x28]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x659db1cb
lea edx, [eax - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x5a0ef92f
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
mov ecx, 0x16864e19
cmovge eax, edx
setl byte [esi + 0xbb]
cmp ecx, 0x5a0ef92e
jg 0x40df60
cmp ecx, 0xaca43792
je 0x40df75
cmp ecx, 0x16864e19
jne 0x40df10
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40df10
cmp ecx, 0x5a0ef92f
je 0x40df79
cmp ecx, 0x659db1cb
jne 0x40df10
jmp 0x40e102
mov ecx, eax
jmp 0x40df10
mov ecx, 0xaca43792
jmp 0x40df10
mov ecx, 0xf962c5e1
jmp 0x40ca10
mov ecx, 0xfed1002c
jmp 0x40ca10
mov eax, dword [esi + 0x2c]
mov edi, esp
push eax
sub esp, 0x1c
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xd
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x2c]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x2c]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov ecx, dword [0x43545c]
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, 0x5a0ef92e
jg 0x40e090
cmp ecx, 0xaca43792
je 0x40e0a5
cmp ecx, 0x16864e19
jne 0x40e040
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40e040
cmp ecx, 0x5a0ef92f
je 0x40e0a9
cmp ecx, 0x659db1cb
jne 0x40e040
jmp 0x40e210
mov ecx, eax
jmp 0x40e040
mov ecx, 0xaca43792
jmp 0x40e040
mov eax, dword [0x4354a0]
mov edi, 0x8d272c4a
mov ebx, 0xe0c023d2
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0xe0c023d2
sete al
cmove ecx, edi
cmp dword [0x4354a4], 0xa
setl dl
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
jmp 0x40ca10
mov ecx, 0xf962c5e1
jmp 0x40ca10
mov ecx, 0xf962c5e1
jmp 0x40ca10
mov eax, dword [esi + 0x2c]
mov edi, esp
push eax
sub esp, 0x1c
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xd
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x2c]
mov edi, dword [ecx + 0x10]
call fcn.0041fb70
push edi
push eax
push dword [esi + 0x10]
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x2c]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov ecx, dword [0x43545c]
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop
cmp ecx, 0x5a0ef92e
jg 0x40e1f0
cmp ecx, 0xaca43792
je 0x40e205
cmp ecx, 0x16864e19
jne 0x40e1a0
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40e1a0
cmp ecx, 0x5a0ef92f
je 0x40e209
cmp ecx, 0x659db1cb
jne 0x40e1a0
jmp 0x40e320
mov ecx, eax
jmp 0x40e1a0
mov ecx, 0xaca43792
jmp 0x40e1a0
mov eax, dword [esi + 0x30]
mov edi, esp
push eax
sub esp, 0x1c
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x30]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xe
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x30]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x30]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov ecx, dword [0x43545c]
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop dword [eax]
cmp ecx, 0x5a0ef92e
jg 0x40e300
cmp ecx, 0xaca43792
je 0x40e315
cmp ecx, 0x16864e19
jne 0x40e2b0
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov ebx, 0xaca43792
mov edi, 0x5a0ef92f
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x5a0ef92f
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x40e2b0
cmp ecx, 0x5a0ef92f
je 0x40e319
cmp ecx, 0x659db1cb
jne 0x40e2b0
jmp 0x40e430
mov ecx, eax
jmp 0x40e2b0
mov ecx, 0xaca43792
jmp 0x40e2b0
mov eax, dword [esi + 0x30]
mov edi, esp
push eax
sub esp, 0x1c
mov ebx, esp
lea ecx, [ebx + 4]
push 0x432b6e
call fcn.0040a6a0
mov eax, dword [esi + 0x30]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xe
call fcn.00411ef0
add esp, 0x20
mov esp, edi
mov ecx, dword [esi + 0x30]
mov edi, dword [ecx + 0x10]
call fcn.0041fb70
push edi
push eax
push dword [esi + 0x10]
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x30]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x5a0ef92f
lea edx, [eax - 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x659db1cb
cmovne edi, ebx
test edx, eax
mov eax, edi
sete byte [esi + 0xb4]
cmove eax, ebx
cmp ecx, 0xa
mov ecx, 0x16864e19
cmovge eax, edi
setl byte [esi + 0xbb]
nop
cmp ecx, 0x5a0ef92e
jg 0x40e410
cmp ecx, 0xaca43792
je 0x40e425
cmp ecx, 0x16864e19
jne 0x40e3c0
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40e3c0
cmp ecx, 0x5a0ef92f
je 0x40e429
cmp ecx, 0x659db1cb
jne 0x40e3c0
jmp 0x40e560
mov ecx, eax
jmp 0x40e3c0
mov ecx, 0xaca43792
jmp 0x40e3c0
mov dword [esi + 0x10], esp
mov eax, dword [esi + 0x34]
push eax
sub esp, 0x1c
mov ebx, esp
lea edi, [ebx + 4]
push dword [esi + 0x74]
push dword [esi + 0x70]
lea eax, [esi + 0xd0]
push eax
call fcn.004229c0
add esp, 0xc
mov ecx, edi
lea edx, [esi + 0xb4]
push edx
lea edx, [esi + 0xd0]
push edx
push eax
call fcn.004210d0
mov eax, dword [esi + 0x34]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xf
call fcn.00411ef0
add esp, 0x20
mov esp, dword [esi + 0x10]
mov ecx, dword [esi + 0x34]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x34]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov ecx, dword [0x43545c]
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
cmp ecx, 0x5a0ef92e
jg 0x40e540
cmp ecx, 0xaca43792
je 0x40e555
cmp ecx, 0x16864e19
jne 0x40e4f0
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov ebx, 0xaca43792
mov edi, 0x5a0ef92f
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x5a0ef92f
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
test dh, dh
cmovne ecx, ebx
jmp 0x40e4f0
cmp ecx, 0x5a0ef92f
je 0x40e559
cmp ecx, 0x659db1cb
jne 0x40e4f0
jmp 0x40e6c0
mov ecx, eax
jmp 0x40e4f0
mov ecx, 0xaca43792
jmp 0x40e4f0
mov ecx, dword [esi + 0x84]
mov edx, dword [esi + 0x80]
mov dword [esi + 0xa0], esp
add ecx, dword [esi + 0x7c]
adc edx, dword [esi + 0xa4]
mov eax, dword [esi + 0x34]
push eax
sub esp, 0x1c
mov ebx, esp
mov dword [esi + 0x80], edx
lea edi, [ebx + 4]
push edx
mov dword [esi + 0x84], ecx
push ecx
lea eax, [esi + 0xd0]
push eax
call fcn.004229c0
add esp, 0xc
mov ecx, edi
lea edx, [esi + 0xb4]
push edx
lea edx, [esi + 0xd0]
push edx
push eax
call fcn.004210d0
mov eax, dword [esi + 0x34]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0xf
call fcn.00411ef0
add esp, 0x20
mov esp, dword [esi + 0xa0]
mov ecx, dword [esi + 0x34]
mov edi, dword [ecx + 0x10]
call fcn.0041fb70
push edi
push eax
push dword [esi + 0x10]
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x34]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, dword [0x43545c]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, 0x5a0ef92e
jg 0x40e6a0
cmp ecx, 0xaca43792
je 0x40e6b5
cmp ecx, 0x16864e19
jne 0x40e650
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40e650
cmp ecx, 0x5a0ef92f
je 0x40e6b9
cmp ecx, 0x659db1cb
jne 0x40e650
jmp 0x40e800
mov ecx, eax
jmp 0x40e650
mov ecx, 0xaca43792
jmp 0x40e650
mov dword [esi + 0x10], esp
mov eax, dword [esi + 0x38]
push eax
sub esp, 0x1c
mov ebx, esp
lea edi, [ebx + 4]
push dword [esi + 0x74]
push dword [esi + 0x70]
lea eax, [esi + 0xd0]
push eax
call fcn.004229c0
add esp, 0xc
mov ecx, edi
lea edx, [esi + 0xb4]
push edx
lea edx, [esi + 0xd0]
push edx
push eax
call fcn.004210d0
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0x10
call fcn.00411ef0
add esp, 0x20
mov esp, dword [esi + 0x10]
mov ecx, dword [esi + 0x38]
mov edi, dword [esi + 0x14]
mov ebx, dword [ecx + 0x10]
call fcn.0041fb70
push ebx
push eax
push edi
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x38]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, dword [0x43545c]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, 0x5a0ef92e
jg 0x40e7e0
cmp ecx, 0xaca43792
je 0x40e7f5
cmp ecx, 0x16864e19
jne 0x40e790
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40e790
cmp ecx, 0x5a0ef92f
je 0x40e7f9
cmp ecx, 0x659db1cb
jne 0x40e790
jmp 0x40c9c9
mov ecx, eax
jmp 0x40e790
mov ecx, 0xaca43792
jmp 0x40e790
mov dword [esi + 0x7c], esp
mov eax, dword [esi + 0x38]
push eax
sub esp, 0x1c
mov ebx, esp
lea edi, [ebx + 4]
push dword [esi + 0x80]
push dword [esi + 0x84]
lea eax, [esi + 0xd0]
push eax
call fcn.004229c0
add esp, 0xc
mov ecx, edi
lea edx, [esi + 0xb4]
push edx
lea edx, [esi + 0xd0]
push edx
push eax
call fcn.004210d0
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
mov dword [ebx + 0x1c], 0x10
call fcn.00411ef0
add esp, 0x20
mov esp, dword [esi + 0x7c]
mov ecx, dword [esi + 0x38]
mov edi, dword [ecx + 0x10]
call fcn.0041fb70
push edi
push eax
push dword [esi + 0x10]
call fcn.00428e30
add esp, 0xc
mov ecx, dword [esi + 0x38]
call fcn.00423120
mov eax, dword [0x435458]
mov edi, 0x659db1cb
mov ebx, 0x5a0ef92f
lea ecx, [eax - 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov ecx, dword [0x43545c]
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
setl cl
setl byte [esi + 0xbb]
cmovge eax, ebx
xor cl, dl
mov ecx, 0x16864e19
cmovne eax, edi
nop word cs:[eax + eax]
nop
cmp ecx, 0x5a0ef92e
jg 0x40e920
cmp ecx, 0xaca43792
je 0x40e932
cmp ecx, 0x16864e19
jne 0x40e8d0
movzx edx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov ebx, 0xaca43792
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x40e8d0
cmp ecx, 0x5a0ef92f
je 0x40e936
cmp ecx, 0x659db1cb
jne 0x40e8d0
jmp 0x40e93d
mov ecx, eax
jmp 0x40e8d0
mov ecx, 0xaca43792
jmp 0x40e8d0
mov ecx, 0xebef8d72
jmp 0x40ca10
mov ecx, dword [esi + 0x54]
call fcn.00415850
mov ecx, dword [esi + 0x44]
call fcn.0040ffa0
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
lea edi, [ecx + 0x78]
mov eax, dword [eax + 4]
mov dword [ecx + eax], vtable.std::basic_fstream_char__struct_std::char_traits_char__.0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
lea edx, [eax - 0x78]
mov dword [ecx + eax - 4], edx
add ecx, 0x18
call fcn.00416030
mov ebx, dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::ios_base::destructor_void_]
mov ecx, edi
call ebx
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx]
lea edi, [ecx + 0x70]
mov eax, dword [eax + 4]
mov dword [ecx + eax], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
lea edx, [eax - 0x70]
mov dword [ecx + eax - 4], edx
add ecx, 0x10
call fcn.00416030
mov ecx, edi
call ebx
mov eax, dword [esi + 0x58]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x94]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x659db1cb
lea edx, [eax - 1]
imul edx, eax
mov eax, 0x5a0ef92f
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
mov ecx, 0x5a0ef92f
setl dh
setl byte [esi + 0xbb]
cmovge eax, ecx
xor dh, dl
mov edx, 0xaca43792
cmovne eax, edi
mov edi, 0x16864e19
nop dword [eax]
cmp edi, 0x5a0ef92e
jg 0x40ea70
cmp edi, 0xaca43792
je 0x40ea82
cmp edi, 0x16864e19
jne 0x40ea20
movzx ebx, byte [esi + 0xb4]
movzx ecx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov bh, cl
xor bh, bl
test cl, cl
mov ecx, 0x5a0ef92f
cmovne edi, edx
test bl, bl
cmove edi, ecx
test bh, bh
cmovne edi, edx
jmp 0x40ea20
cmp edi, 0x5a0ef92f
je 0x40ea86
cmp edi, 0x659db1cb
jne 0x40ea20
jmp 0x40ea8d
mov edi, eax
jmp 0x40ea20
mov edi, 0xaca43792
jmp 0x40ea20
mov ecx, dword [esi + 0x98]
call fcn.00423120
mov eax, dword [0x435458]
mov ecx, dword [0x43545c]
mov edi, 0x659db1cb
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
mov eax, 0x5a0ef92f
sete dl
sete byte [esi + 0xb4]
cmove eax, edi
cmp ecx, 0xa
mov ecx, 0x5a0ef92f
cmovge eax, ecx
setl cl
setl byte [esi + 0xbb]
xor cl, dl
mov edx, 0x16864e19
mov ecx, 0xaca43792
cmovne eax, edi
nop dword [eax + eax]
cmp edx, 0x5a0ef92e
jg 0x40eb30
cmp edx, 0xaca43792
je 0x40eb42
cmp edx, 0x16864e19
jne 0x40eaf0
movzx ebx, byte [esi + 0xb4]
movzx edx, byte [esi + 0xbb]
mov edi, 0x5a0ef92f
mov dh, bl
xor dh, dl
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
test bl, bl
cmove edx, edi
jmp 0x40eaf0
cmp edx, 0x5a0ef92f
je 0x40eb46
cmp edx, 0x659db1cb
jne 0x40eaf0
jmp 0x40eb4d
mov edx, eax
jmp 0x40eaf0
mov edx, 0xaca43792
jmp 0x40eaf0
mov ebx, dword [esi + 0x88]
mov ecx, dword [esi + 0xd0]
xor ecx, ebp
and bl, 1
call fcn.0043082b
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret