Function at 0x406f8e
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov eax, 0x42fe38
call fcn.0042f2d0
sub esp, 0xb4
push ebx
push esi
push edi
call fcn.00401ddf
push dword [0x43abec]
mov bl, al
push 0x64cdffff
call fcn.004117b3
add dword [0x43abec], eax
movsx eax, byte [0x43abcc]
push eax
movsx eax, word [0x43abe0]
push eax
call fcn.004118af
push 0xb4a7ffff
push 0x4785ffff
mov dword [0x43ac04], eax
call fcn.004118af
add byte [0x43abcb], al
call fcn.0040308e
mov byte [ebp - 0xd], al
push dword [0x43ac00]
mov eax, 0x6ee3ffff
sub eax, dword [0x43abe8]
add dword [0x43abf8], eax
movsx eax, word [0x43abdc]
push eax
call fcn.0041181a
push dword [0x43abf8]
mov word [0x43abd8], ax
push 0x2821ffff
call fcn.004117b3
add byte [0x43abcd], al
add esp, 0x28
cmp byte [ebp - 0xd], 0
je 0x407093
mov al, byte [0x43abf8]
push 0xc473ffff
neg al
push 0xa1b7ffff
mov byte [0x43abce], al
call fcn.004117ef
add word [0x43abd6], ax
push 0xf1a5ffff
movsx eax, byte [0x43abcc]
push eax
call fcn.004117ef
add dword [0x43abf8], eax
add esp, 0x10
call fcn.0040329b
movsx eax, word [0x43abd8]
or eax, dword [0x43ac0c]
add dword [0x43abf8], eax
push 0xa215ffff
push 0xeebbffff
call fcn.004118af
add dword [0x43abf0], eax
push 0x2dd7ffff
push 0x5c57ffff
call fcn.004116b5
mov byte [0x43abce], al
push 0x8d27ffff
movsx eax, word [0x43abda]
push eax
call fcn.004117ef
add word [0x43abd6], ax
push 0x4b
call fcn.00415e1f
add esp, 0x1c
call eax
push eax
call dword [sym.imp.MSVCRT.dll_srand]
dec byte [0x43abcf]
inc byte [0x43abcc]
push 0xd3f9ffff
push 0x3d6bffff
call fcn.004118af
add dword [0x43ac08], eax
push 0x6d73ffff
movsx eax, word [0x43abd4]
push eax
call fcn.004117b3
add byte [0x43abcb], al
push dword [0x43ac04]
movsx eax, byte [0x43abc8]
push eax
call fcn.004118af
add word [0x43abd6], ax
mov eax, dword [0x43ac00]
sub eax, dword [0x43ac04]
mov word [0x43abda], ax
call fcn.0042e53d
movsx eax, word [0x43abde]
push 0x17e7ffff
push eax
call fcn.004118af
add dword [0x43ac08], eax
mov al, byte [0x43abe2]
add esp, 0x24
inc al
add byte [0x43abc9], al
call fcn.00402036
mov byte [ebp - 0xd], al
call fcn.0040ad31
test bl, bl
jne 0x40718f
call fcn.00402ca9
cmp byte [ebp - 0xd], 0
je 0x40719e
call fcn.00406b75
test al, al
je 0x4071b7
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xcc]
xor eax, eax
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 4
call fcn.00406d1d
call fcn.00406dac
push dword [0x43a8b0]
call fcn.0041a43d
push 0xba5dffff
push 0x137bffff
call fcn.00411906
mov word [0x43abe4], ax
mov ax, word [0x43ac08]
sub word [0x43abd6], ax
mov eax, dword [0x43abfc]
imul eax, eax, 0xbfe7ffff
add dword [0x43abf0], eax
push 0x76e9ffff
push dword [0x43ac0c]
mov word [0x43abd2], 0xfffe
call fcn.004116b5
xor edi, edi
push 0xa983ffff
push 0x2e95ffff
mov word [0x43abe4], ax
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0xd], 1
call fcn.004117ef
add byte [0x43abce], al
push 0x407dffff
movsx eax, word [0x43abe4]
push eax
call fcn.00411906
add esp, 0x24
mov dword [0x43abe8], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and byte [ebp - 0x11], 0
mov byte [0x43abcf], al
mov dword [ebp - 0x18], edi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push 0xe1a7ffff
mov dword [0x43ac04], eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
cmp dword [ebp - 0x18], edi
mov word [0x43abd4], ax
jne 0x4072af
push 9
call fcn.0040afc7
push 2
mov esi, eax
call fcn.0040afc7
imul esi, eax
imul esi, esi, 0x3e8
pop ecx
pop ecx
push esi
push 0x5a
call fcn.00415e1f
pop ecx
call eax
add word [0x43abd4], 0xfffe
xor eax, eax
cmp word [0x43abe4], di
push 0x673ffff
push dword [0x43abf0]
setne al
mov dword [0x43ac0c], eax
call fcn.00411738
add dword [0x43abf0], eax
push 9
movsx ax, byte [0x43abca]
sub ax, word [0x43abd2]
add word [0x43abdc], ax
inc dword [ebp - 0x18]
call fcn.0040afc7
add esp, 0xc
cmp dword [ebp - 0x18], eax
jb 0x40736a
movsx ecx, word [0x43abda]
mov eax, dword [0x43abec]
imul ecx, eax
cmp byte [0x43abc9], 0
mov dword [0x43abfc], ecx
je 0x407332
cmp word [0x43abde], di
je 0x407332
push 1
pop ecx
jmp 0x407334
xor ecx, ecx
add dword [0x43ac04], ecx
mov cx, word [0x43abd2]
add word [0x43abd6], cx
and byte [ebp - 0x11], 0
push 0x2271ffff
push eax
mov dword [ebp - 0x18], edi
mov word [0x43abd4], 1
call fcn.00411706
pop ecx
mov dword [0x43ac0c], eax
pop ecx
movsx eax, byte [0x43abcc]
push dword [0x43abe8]
push eax
call fcn.004117ef
push dword [0x43abfc]
add word [0x43abd8], ax
push 0x9f8bffff
call fcn.004117b3
mov dword [0x43abec], eax
call fcn.00420afa
push 0x4785ffff
push 0xef05ffff
mov esi, eax
call fcn.004117b3
push 7
mov byte [0x43abcd], al
call fcn.0040afc7
add esp, 0x1c
cmp esi, eax
jae 0x407524
movsx eax, byte [0x43abca]
push dword [0x43abe8]
push eax
call fcn.00411775
push dword [0x43ac0c]
mov word [0x43abd8], ax
push 0x3325ffff
call fcn.0041181a
add esp, 0x10
cmp dword [ebp - 0x1c], 3
mov dword [0x43abf4], eax
jb 0x407268
push 0x4bafffff
push dword [0x43abfc]
call fcn.0041181a
add byte [0x43abd1], al
pop ecx
pop ecx
call fcn.00403464
push 0x1388
push 0x5a
call fcn.00415e1f
pop ecx
call eax
movsx ax, byte [0x43abd1]
and ax, word [0x43abde]
push 0x6899ffff
push 0x6113ffff
add word [0x43abe2], ax
call fcn.00411706
add dword [0x43abec], eax
call fcn.00420afa
inc dword [0x43abf4]
mov esi, eax
movsx eax, byte [0x43abcb]
push eax
push 0xcf11ffff
call fcn.00411864
mov word [0x43abd4], ax
mov eax, dword [0x43abe8]
inc eax
push 7
mov word [0x43abd6], ax
call fcn.0040afc7
add esp, 0x14
cmp esi, eax
jae 0x4074e8
call fcn.0042e360
movsx eax, byte [0x43abd0]
push eax
push dword [0x43abf8]
call fcn.00411706
add word [0x43abe0], ax
push 0x14f1ffff
push dword [0x43abf4]
call fcn.00411738
add byte [0x43abd0], al
push 0x5c57ffff
movsx eax, word [0x43abe4]
push eax
call fcn.00411706
add esp, 0x18
add word [0x43abe4], ax
movsx eax, byte [0x43abce]
push dword [0x43ac00]
push eax
call fcn.00411775
add word [0x43abda], ax
pop ecx
movsx eax, byte [0x43abcb]
pop ecx
mov ecx, 0xefbffff
sub ecx, eax
or byte [0x43abc8], 0xff
mov dword [0x43ac08], ecx
jmp 0x407268
call fcn.0040344c
cmp eax, 0x32
jl 0x407588
movsx eax, word [0x43abde]
push eax
push dword [0x43ac00]
call fcn.00411738
mov dword [0x43ac00], eax
movsx eax, byte [0x43abd0]
push eax
push 0x2a49ffff
call fcn.0041181a
add dword [0x43ac0c], eax
add esp, 0x10
cmp dword [ebp - 0x1c], 1
jb 0x40756c
call fcn.0042e360
mov eax, dword [0x43abf0]
or dword [0x43abec], 0xffffffff
or eax, 0xd907ffff
add dword [0x43abf4], eax
jmp 0x407268
lea ecx, [ebp - 0xb0]
call fcn.0040832b
lea eax, [ebp - 0xb0]
mov dword [ebp - 4], edi
push eax
call fcn.0040e433
test al, al
pop ecx
je 0x407da8
mov al, byte [0x43ac08]
push 0x7d59ffff
push dword [0x43ac04]
dec al
add byte [0x43abcc], al
call fcn.004117b3
add byte [0x43abd0], al
and byte [ebp - 0xd], 0
movsx eax, byte [0x43abcd]
push 0x2c51ffff
push eax
call fcn.00411738
add word [0x43abdc], ax
push edi
call fcn.004033bc
mov esi, eax
push 0x50b1ffff
push 0xbe8dffff
mov dword [ebp - 0x30], esi
mov dword [0x43ac08], 1
call fcn.004116b5
add word [0x43abd8], ax
add esp, 0x1c
cmp dword [esi + 0x38], 3
jl 0x40764c
mov eax, dword [0x43ac04]
and ax, word [0x43abd8]
add word [0x43abde], ax
call fcn.0042e360
movsx ax, byte [0x43abce]
sub eax, dword [0x43abe8]
add word [0x43abd6], ax
movsx eax, byte [0x43abc9]
push 0x2107ffff
push eax
call fcn.0041181a
inc dword [ebp - 0x1c]
inc dword [ebp - 0x40]
and byte [ebp - 0xe], 0
and byte [ebp - 0x10], 0
xor ecx, ecx
cmp dword [0x43abec], edi
push 0xac9ffff
push 0x99efffff
setne cl
add ax, cx
mov word [0x43abe2], ax
call fcn.00411738
add esp, 0x10
cmp byte [ebp - 0x11], 0
mov dword [0x43abe8], eax
jne 0x4077a0
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x44]
jge 0x4077a0
mov ebx, dword [sym.imp.MSVCRT.dll_rand]
call ebx
mov ecx, dword [0x43abfc]
mov esi, eax
mov eax, dword [0x43ac0c]
and ecx, eax
push eax
add word [0x43abe0], cx
push 0xc303ffff
call fcn.00411775
add byte [0x43abcd], al
cmp dword [ebp - 0x38], edi
pop ecx
pop ecx
je 0x40770a
push 9
call fcn.0040afc7
push eax
push dword [ebp - 0x38]
call fcn.00406d4a
mov ecx, eax
mov eax, esi
cdq
idiv ecx
add esp, 0xc
test edx, edx
je 0x40770a
and byte [ebp - 0xe], 0
jmp 0x4077a0
movsx eax, byte [0x43abcd]
push dword [0x43abf4]
mov byte [ebp - 0xe], 1
push eax
call fcn.004117ef
add byte [0x43abc9], al
push 0x25c3ffff
movsx eax, byte [0x43abd1]
push eax
call fcn.004117b3
add dword [0x43ac08], eax
inc dword [ebp - 0x3c]
movsx eax, byte [0x43abcc]
push 0x52bfffff
push eax
mov byte [ebp - 0x11], 1
call fcn.004118af
push 4
mov byte [0x43abcc], al
call fcn.0040afc7
mov esi, eax
call ebx
push 0x64
cdq
pop ecx
idiv ecx
movsx eax, byte [0x43abd0]
push eax
push 0x6f2fffff
cmp edx, esi
setb byte [ebp - 0x10]
call fcn.004117b3
add word [0x43abe4], ax
mov al, byte [0x43abd0]
add esp, 0x24
or al, byte [0x43abc8]
mov byte [0x43abcd], al
call dword [sym.imp.USER32.dll_GetFocus]
mov bx, word [0x43abe4]
mov byte [0x43abcc], al
mov al, bl
push 0x14
imul byte [0x43abd1]
add byte [0x43abcb], al
mov eax, dword [0x43abfc]
xor edx, edx
pop esi
lea ecx, [eax + 0x6577ffff]
mov eax, dword [ebp - 0x1c]
div esi
mov dword [0x43abf0], ecx
test edx, edx
jne 0x407868
movsx eax, bx
push ecx
push eax
call fcn.00411906
add word [0x43abdc], ax
xor eax, eax
cmp byte [0x43abca], al
setne al
add byte [0x43abcf], al
lea eax, [ebp - 0xc0]
push eax
call fcn.00426d74
add esp, 0xc
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add dword [0x43abe8], eax
mov al, byte [0x43abce]
mov byte [0x43abcf], al
push 0xd8c5ffff
movsx eax, word [0x43abe4]
push eax
call fcn.0041181a
mov dword [0x43ac00], eax
lea eax, [ebp - 0xc0]
push eax
push 5
call fcn.0040b3d6
and byte [ebp - 4], 0
add esp, 0x10
lea ecx, [ebp - 0xc0]
push 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
movsx eax, byte [0x43abce]
push eax
push dword [0x43ac00]
call fcn.004116b5
add byte [0x43abcb], al
push 0x2c13ffff
push 0x4fa1ffff
call fcn.00411706
add word [0x43abe0], ax
push 0x5f05ffff
push dword [0x43abfc]
call fcn.004118af
mov dword [0x43abe8], eax
lea eax, [ebp - 0xb0]
push edi
push eax
call fcn.0040d6bc
add esp, 0x20
dec byte [0x43abcc]
call fcn.0040e7c1
mov al, byte [ebp - 0xd]
push edi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x2c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
movsx eax, byte [0x43abd0]
and byte [ebp - 0xf], 0
push 0xa7d7ffff
push eax
mov byte [ebp - 4], 2
call fcn.00411738
pop ecx
mov word [0x43abe2], ax
movsx eax, word [0x43abde]
pop ecx
or eax, 0x31a3ffff
push 3
mov dword [0x43abf4], eax
pop ebx
cmp dword [ebp - 0x50], ebx
jne 0x407977
movsx eax, byte [0x43abcf]
push eax
push 0x6769ffff
call fcn.0041181a
pop ecx
mov byte [0x43abd1], al
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
pop ecx
lea ecx, [ebp - 0x2c]
push dword [eax]
lea eax, [ebp - 0x80]
push edi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 0xd723ffff
push 0xc655ffff
call fcn.004117b3
push 0xf569ffff
push 0x40dbffff
mov word [0x43abdc], ax
call fcn.004116b5
add esp, 0x10
inc byte [0x43abca]
mov byte [0x43abc8], al
jmp 0x407c7e
cmp dword [ebp - 0x50], 4
jne 0x407a19
cmp dword [ebp - 0x98], edi
jbe 0x407a10
mov esi, dword [0x433ee4]
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [ebp - 0x2c]
push dword [eax]
lea eax, [ebp - 0xb0]
push edi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov esi, dword [0x433ee8]
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
jmp 0x407c7e
mov byte [ebp - 0xf], 1
jmp 0x407c7e
cmp byte [0x43abcb], 0
jne 0x407a31
cmp byte [0x43abc8], 0
mov dword [0x43abf8], edi
je 0x407a3b
mov dword [0x43abf8], 1
movsx eax, byte [0x43abca]
push eax
push 0x5c4dffff
call fcn.004118af
mov esi, dword [0x433eec]
mov word [0x43abda], ax
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
cmp dword [ebp - 0x50], 1
jne 0x407b4e
mov esi, dword [0x433efc]
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
call dword [sym.imp.USER32.dll_GetCapture]
add word [0x43abe0], ax
mov al, byte [0x43abd6]
or al, byte [0x43abf8]
lea ecx, [ebp - 0x2c]
add byte [0x43abcf], al
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [eax]
lea eax, [ebp - 0xb0]
push edi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov esi, dword [0x433f00]
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
movsx eax, word [0x43abe2]
push eax
push dword [0x43ac04]
call fcn.00411775
add byte [0x43abcf], al
pop ecx
pop ecx
jmp 0x407c03
cmp dword [ebp - 0x50], 2
jne 0x407c03
movsx eax, byte [0x43abcc]
push eax
push 0x2d91ffff
call fcn.00411864
mov esi, dword [0x433f04]
mov byte [0x43abc8], al
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [ebp - 0x2c]
push dword [eax]
lea eax, [ebp - 0xb0]
push edi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [0x43abf0]
dec word [0x43abd2]
mov esi, dword [0x433f08]
dec eax
add word [0x43abd4], ax
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
cmp dword [0x43abe8], edi
je 0x407c1d
cmp byte [0x43abcd], 0
je 0x407c1d
mov byte [0x43abca], 1
jmp 0x407c24
and byte [0x43abca], 0
mov esi, dword [0x433ef8]
mov al, byte [esi]
add al, 0x76
movzx eax, al
add eax, ebx
and al, 0xfc
call fcn.0042f2f0
mov ecx, esp
mov edx, esi
call fcn.0042b788
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
movsx ecx, word [0x43abe4]
xor eax, eax
cmp word [0x43abdc], di
setne al
mov dword [0x43ac0c], eax
movsx eax, byte [0x43abd1]
sub eax, ecx
add dword [0x43abf0], eax
cmp byte [ebp - 0x33], 0
je 0x407c91
lea eax, [ebp - 0xb0]
push eax
call fcn.0042ce8c
pop ecx
movsx eax, byte [0x43abcd]
push eax
movsx eax, word [0x43abe4]
push eax
call fcn.00411706
cmp byte [ebp - 0xf], 0
pop ecx
pop ecx
mov word [0x43abd2], ax
jne 0x407cc6
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0041348f
pop ecx
pop ecx
movsx eax, word [0x43abda]
push eax
push 0x6229ffff
call fcn.00411906
add dword [0x43abf0], eax
push 0xf2d3ffff
push 0xf333ffff
call fcn.004117b3
add byte [0x43abc9], al
mov al, byte [ebp - 0xe]
add esp, 0x10
cmp byte [ebp - 0xf], 0
je 0x407d17
xor ecx, ecx
cmp byte [ebp - 0x10], cl
sete cl
inc ecx
neg al
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0xb0]
jmp 0x407d2d
xor ecx, ecx
cmp byte [ebp - 0x10], cl
sete cl
inc ecx
neg al
sbb eax, eax
and eax, ecx
push eax
lea eax, [ebp - 0xa0]
mov ecx, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.00403981
cmp byte [ebp - 0xe], 0
je 0x407d82
mov ebx, dword [ebp - 0x30]
lea eax, [ebp - 0x60]
push eax
mov ecx, ebx
call fcn.00406b5c
mov esi, 0x404
push 0x11
push esi
mov ecx, ebx
call fcn.004174b8
push 0x12
push esi
mov ecx, ebx
call fcn.004174b8
push 0x13
push esi
mov ecx, ebx
call fcn.004174b8
push 0x14
push 0x403
mov ecx, ebx
call fcn.004174b8
xor eax, eax
cmp dword [0x43ac08], edi
push 1
lea ecx, [ebp - 0x2c]
setne al
add word [0x43abda], ax
and byte [ebp - 4], 0
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x407e8a
cmp byte [ebp - 0xd], 0
jne 0x407e8a
push 6
call fcn.0040afc7
push 5
mov esi, eax
call fcn.0040afc7
pop ecx
cmp esi, eax
pop ecx
jb 0x407e8a
push 0xe
call fcn.0040afc7
push 0xd
mov esi, eax
call fcn.0040afc7
pop ecx
cmp esi, eax
pop ecx
jb 0x407e8a
movsx eax, word [0x43abde]
push eax
push 0xe0bffff
call fcn.0041181a
add byte [0x43abc9], al
call fcn.00403464
push 0xefb9ffff
push 0xf5c5ffff
mov byte [ebp - 0xd], 1
call fcn.0041181a
add word [0x43abda], ax
call fcn.0040e7c1
movsx eax, word [0x43abd2]
push 0x653ffff
push eax
call fcn.004117b3
add byte [0x43abce], al
mov word [0x43abe4], 0xfffe
call fcn.0042e360
movsx ax, byte [0x43abc8]
inc eax
push 0xabefffff
mov word [0x43abe4], ax
movsx eax, word [0x43abda]
push eax
call fcn.00411864
add byte [0x43abca], al
movsx eax, byte [0x43abcb]
push eax
push 0xb43fffff
call fcn.00411738
add esp, 0x28
mov word [0x43abd8], ax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xb0]
call fcn.00407ef5
jmp 0x407268