Function at 0x40b6b0
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x42d5d2
call fcn.0042c5b0
sub esp, 0x30
mov ax, word [0x437bfe]
push ebx
add word [0x437bfc], ax
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov eax, dword [edi + 8]
cmp eax, ebx
je 0x40c6c4
movsx eax, word [0x437bf4]
push dword [0x437c14]
push eax
call fcn.00410092
add word [0x437c00], ax
pop ecx
movsx eax, word [0x437c04]
imul eax, eax, 0xa48dffff
add dword [0x437c28], eax
pop ecx
push ebx
push ebx
push 0x1f
call fcn.0041448a
pop ecx
call eax
mov dword [ebp - 0x18], eax
movsx eax, byte [0x437beb]
push 0xbe45ffff
push eax
mov dword [ebp - 4], ebx
call fcn.004100bc
mov word [0x437bfe], ax
mov dword [ebp - 0x10], ebx
movsx eax, byte [0x437bf0]
push dword [0x437c08]
or eax, 0xffafffff
mov byte [ebp - 4], 1
mov dword [0x437c28], eax
push 0x57f7ffff
call fcn.0040fede
mov esi, dword [0x431038]
add dword [0x437c20], eax
add esp, 0x10
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
push 0x17
push ebx
mov edx, esi
call fcn.004298e5
push eax
lea ecx, [ebp - 0x10]
call fcn.0040f30d
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp esi, ebx
mov word [0x437c02], ax
jl 0x40c69b
push 0x61e3ffff
push 0x9651ffff
call fcn.0041004e
mov word [0x437bfe], ax
movsx eax, word [0x437c04]
push eax
push 0x7a39ffff
call fcn.0040ff1a
add esp, 0x10
mov dword [0x437c1c], eax
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x437bed], al
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.0040f1db
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f0f9
mov esi, eax
movsx eax, word [0x437bfc]
push eax
push eax
call fcn.004100bc
add dword [0x437c08], eax
pop ecx
pop ecx
call dword [sym.imp.USER32.dll_GetCapture]
add dword [0x437c28], eax
cmp si, bx
je 0x40c69b
movsx eax, word [0x437bfe]
push eax
movsx eax, word [0x437bfa]
push eax
call fcn.00410016
push 0x638bffff
push 0x534fffff
mov dword [0x437c10], eax
call fcn.0040fede
mov esi, dword [0x43103c]
add dword [0x437c18], eax
or byte [0x437bee], 0xff
add esp, 0x10
mov al, byte [esi]
add al, 0x16
push 0xfffffffffffffffc
movzx eax, al
add eax, 3
pop edi
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040f1db
lea eax, [ebp + 8]
lea ecx, [ebp - 0x10]
push eax
mov byte [ebp - 4], 1
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
dec word [0x437c04]
or word [0x437bfe], 0xffff
push 0x237fffff
push 0x59a1ffff
mov byte [ebp - 4], 4
call fcn.0040ffc6
add byte [0x437be9], al
cmp dword [ebp + 8], ebx
pop ecx
pop ecx
je 0x40c69b
cmp byte [ebp + 0xc], bl
je 0x40b8f4
call fcn.0040e604
movsx eax, word [0x437bf6]
push eax
push 0x194dffff
call fcn.00410016
mov byte [0x437beb], al
movsx eax, word [0x437bf8]
push eax
push 0x1519ffff
call fcn.0040fede
mov esi, dword [0x431040]
add word [0x437bf4], ax
add esp, 0x10
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040f1db
lea eax, [ebp + 0xc]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 4
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push 0xabbffff
push 0xcbadffff
mov byte [ebp - 4], 6
call fcn.004100bc
pop ecx
mov dword [0x437c1c], eax
pop ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
je 0x40ba5c
lea eax, [ebp - 0x14]
push eax
call fcn.0040efbf
mov ecx, dword [eax]
mov byte [ebp - 4], 7
cmp ecx, ebx
je 0x40b9ab
call fcn.0040f435
mov esi, eax
jmp 0x40b9ad
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 9
cmp ecx, ebx
je 0x40b9e2
call fcn.0040f408
mov dword [ebp - 0x14], ebx
movsx eax, byte [0x437be8]
and dword [0x437c14], eax
lea eax, [ebp - 0x2c]
push eax
push 4
call fcn.0040aae5
movsx eax, byte [0x437bef]
push eax
push 0x104dffff
call fcn.0040ff4b
add byte [0x437bea], al
add esp, 0x10
cmp word [0x437c00], bx
jne 0x40ba2d
cmp byte [0x437bef], bl
mov word [0x437bf2], bx
je 0x40ba36
mov word [0x437bf2], 1
push dword [0x437c28]
push 0x737fffff
call fcn.0040ff4b
pop ecx
mov dword [0x437c18], eax
pop ecx
mov byte [ebp - 4], 6
push 1
lea ecx, [ebp - 0x2c]
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 [0x437bfe]
push eax
push 0xb7b5ffff
call fcn.0040fede
add word [0x437c00], ax
movsx eax, byte [0x437beb]
push eax
push 0x3c17ffff
call fcn.00410016
mov esi, dword [0x431034]
mov byte [0x437beb], al
add esp, 0x10
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push dword [eax]
lea ecx, [ebp + 0xc]
call fcn.0040f48c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40bae9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ax, word [0x437bf8]
push 0xf2a7ffff
add ax, word [0x437bfc]
mov word [0x437c02], ax
movsx eax, word [0x437c04]
push eax
call fcn.004100bc
pop ecx
mov byte [0x437beb], al
pop ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
je 0x40bbd6
lea eax, [ebp - 0x14]
push eax
call fcn.0040eff9
mov ecx, dword [eax]
mov byte [ebp - 4], 0xb
cmp ecx, ebx
je 0x40bb3c
call fcn.0040f435
mov esi, eax
jmp 0x40bb3e
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xd
cmp ecx, ebx
je 0x40bb73
call fcn.0040f408
mov dword [ebp - 0x14], ebx
movsx eax, word [0x437bfe]
inc byte [0x437bf1]
push 0xe7c7ffff
push eax
call fcn.00410016
add dword [0x437c1c], eax
lea eax, [ebp - 0x2c]
push eax
push ebx
call fcn.0040aae5
add esp, 0x10
push 0xb351ffff
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
add byte [0x437bed], al
push 0xb6b9ffff
push dword [0x437c20]
call fcn.0040ffc6
pop ecx
mov word [0x437bf8], ax
pop ecx
mov byte [ebp - 4], 6
push 1
lea ecx, [ebp - 0x2c]
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 esi, dword [0x431044]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push dword [eax]
lea ecx, [ebp + 0xc]
call fcn.0040f48c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40bc30
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
call edi
mov ecx, dword [ebp + 0xc]
mov byte [0x437bee], al
cmp ecx, ebx
je 0x40bcd1
lea eax, [ebp - 0x14]
push eax
call fcn.0040eff9
mov ecx, dword [eax]
mov byte [ebp - 4], 0xf
cmp ecx, ebx
je 0x40bc64
call fcn.0040f435
mov esi, eax
jmp 0x40bc66
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x11
cmp ecx, ebx
je 0x40bc9b
call fcn.0040f408
mov dword [ebp - 0x14], ebx
or byte [0x437bea], 0xff
call dword [sym.imp.USER32.dll_GetCapture]
add word [0x437bf2], ax
lea eax, [ebp - 0x2c]
push eax
push 1
call fcn.0040aae5
inc dword [0x437c2c]
pop ecx
pop ecx
mov byte [ebp - 4], 6
push 1
lea ecx, [ebp - 0x2c]
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 0xe07ffff
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov esi, dword [0x431048]
mov dword [0x437c0c], eax
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
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push dword [eax]
lea ecx, [ebp + 0xc]
call fcn.0040f48c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40bd3b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x437c1c]
mov ax, 0xfffe
sub ax, word [0x437c02]
mov word [0x437bf6], ax
movsx eax, byte [0x437bed]
push eax
call fcn.0040ff1a
add byte [0x437bea], al
cmp dword [ebp + 0xc], ebx
pop ecx
pop ecx
je 0x40bda7
mov al, byte [0x437bfc]
dec al
add byte [0x437bf0], al
xor eax, eax
cmp word [0x437bf4], bx
setne al
add dword [0x437c14], eax
call fcn.0042b573
push 0xd0f7ffff
push 0x5badffff
call fcn.0040ff78
add dword [0x437c20], eax
pop ecx
pop ecx
push 0x59f7ffff
push 0x7e1dffff
call fcn.00410092
mov esi, dword [0x43104c]
mov byte [0x437bef], al
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x16
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push dword [eax]
lea ecx, [ebp + 0xc]
call fcn.0040f48c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40be17
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, byte [0x437bfe]
neg al
cmp dword [ebp + 0xc], ebx
mov byte [0x437bed], al
je 0x40bf6c
mov eax, dword [0x437c28]
and eax, 0x94f5ffff
add dword [0x437c24], eax
lea eax, [ebp - 0x3c]
push eax
call fcn.0041e38f
mov dword [esp], 0x2f83ffff
push 0xf727ffff
mov byte [ebp - 4], 0x14
call fcn.00410092
add word [0x437c04], ax
push 0x5b75ffff
push 0xc5b1ffff
call fcn.00410092
add dword [0x437c14], eax
mov ax, word [0x437bf2]
sub ax, word [0x437c0c]
add esp, 0x10
lea ecx, [ebp - 0x2c]
mov word [0x437bf6], ax
mov al, byte [ebp + 0xf]
push ebx
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_]
mov eax, dword [0x437c14]
push ebx
imul eax, eax, 0x5a07ffff
add dword [0x437c08], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0x15
mov byte [0x437be9], 1
call fcn.0040ca25
add esp, 0x10
test al, al
je 0x40bf16
push dword [0x437c2c]
add dword [0x437c10], 0x598bfffe
push 0xb3c5ffff
call fcn.0040ff1a
add word [0x437bf6], ax
lea eax, [ebp - 0x2c]
push eax
call fcn.0042b1d2
add esp, 0xc
call edi
push 0x4c93ffff
mov dword [0x437c24], eax
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
add dword [0x437c08], eax
xor eax, eax
cmp dword [0x437c24], ebx
setne al
add dword [0x437c24], eax
call dword [sym.imp.USER32.dll_GetCursor]
add word [0x437c04], ax
push 0x318dffff
movsx eax, byte [0x437bed]
push eax
call fcn.00410016
add byte [0x437bee], al
pop ecx
pop ecx
mov byte [ebp - 4], 0x14
push 1
lea ecx, [ebp - 0x2c]
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 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 6
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 esi, dword [0x431050]
push 0xfffffffffffffffc
pop edi
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push dword [eax]
lea ecx, [ebp + 0xc]
call fcn.0040f48c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40bfc9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov cx, word [0x437c04]
mov eax, dword [0x437c08]
sub cx, ax
mov word [0x437bf4], cx
movsx ecx, byte [0x437be9]
push ecx
push eax
call fcn.00410016
mov dword [0x437c0c], eax
movsx eax, word [0x437bfe]
push eax
push 0x7809ffff
call fcn.0040fede
mov ecx, dword [ebp + 0xc]
add esp, 0x10
cmp ecx, ebx
mov word [0x437bfa], ax
je 0x40c0eb
lea eax, [ebp - 0x14]
push eax
call fcn.0040efbf
mov ecx, dword [eax]
mov byte [ebp - 4], 0x17
cmp ecx, ebx
je 0x40c034
call fcn.0040f435
mov esi, eax
jmp 0x40c036
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x19
cmp ecx, ebx
je 0x40c06b
call fcn.0040f408
mov dword [ebp - 0x14], ebx
inc dword [0x437c14]
push 0x14a1ffff
push dword [0x437c18]
call fcn.0040ff4b
add word [0x437c04], ax
mov ecx, dword [0x437c2c]
movsx eax, word [0x437c02]
sub ecx, eax
lea eax, [ebp - 0x2c]
add dword [0x437c28], ecx
push eax
call fcn.0040b1da
sub dword [0x437c14], 0xb400001
push eax
push 5
call fcn.0040a7bb
mov ax, word [0x437c18]
add esp, 0x14
inc dword [0x437c08]
mov word [0x437bf2], ax
mov eax, dword [0x437c1c]
push 1
add eax, 0x9127ffff
lea ecx, [ebp - 0x2c]
mov dword [0x437c0c], eax
mov byte [ebp - 4], 6
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 esi, dword [0x431054]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push dword [eax]
lea ecx, [ebp + 0xc]
call fcn.0040f48c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40c145
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
je 0x40c25a
lea eax, [ebp - 0x14]
push eax
call fcn.0040efbf
mov ecx, dword [eax]
mov byte [ebp - 4], 0x1b
cmp ecx, ebx
je 0x40c16c
call fcn.0040f435
mov esi, eax
jmp 0x40c16e
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x1d
cmp ecx, ebx
je 0x40c1a3
call fcn.0040f408
mov dword [ebp - 0x14], ebx
mov al, byte [0x437c04]
mov dword [0x437c28], 0x8e3c0001
neg al
mov byte [0x437bea], al
movsx ax, al
dec eax
add word [0x437c02], ax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040b1da
mov esi, eax
movsx eax, word [0x437c04]
push eax
movsx eax, word [0x437bfa]
push eax
call fcn.0041004e
add byte [0x437bec], al
mov ax, word [0x437bf8]
and ax, word [0x437bfa]
push 0x7473ffff
mov word [0x437c02], ax
movsx eax, byte [0x437bef]
push eax
call fcn.0040ffc6
push esi
push 4
mov word [0x437c04], ax
call fcn.0040a7bb
movsx eax, byte [0x437bee]
push 0x5a1bffff
push eax
call fcn.00410092
add dword [0x437c08], eax
add esp, 0x24
movsx eax, word [0x437bfe]
imul eax, eax, 0x46fbffff
push 1
lea ecx, [ebp - 0x2c]
mov dword [0x437c28], eax
mov byte [ebp - 4], 6
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 ecx
mov ecx, dword [ebp + 8]
mov eax, esp
mov dword [ebp - 0x1c], esp
mov dword [eax], ecx
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x40c272
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
call fcn.0040e6a3
mov esi, dword [0x431058]
pop ecx
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
mov eax, dword [eax]
mov esi, dword [ebp + 0xc]
cmp esi, eax
mov byte [ebp - 4], 0x1f
je 0x40c2dd
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], eax
call fcn.0040f4b7
cmp esi, ebx
je 0x40c2dd
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 6
cmp eax, ebx
je 0x40c2ee
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
je 0x40c3b2
lea eax, [ebp - 0x14]
push eax
call fcn.0040efbf
mov ecx, dword [eax]
mov byte [ebp - 4], 0x20
cmp ecx, ebx
je 0x40c315
call fcn.0040f435
mov esi, eax
jmp 0x40c317
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x22
cmp ecx, ebx
je 0x40c34c
call fcn.0040f408
mov dword [ebp - 0x14], ebx
mov ax, word [0x437c04]
inc ax
mov word [0x437bf2], ax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040b1da
mov cx, word [0x437c08]
push eax
or cx, word [0x437c04]
push 6
mov word [0x437bfa], cx
movsx cx, byte [0x437bea]
dec ecx
add word [0x437bf2], cx
call fcn.0040a7bb
mov ax, word [0x437c02]
add esp, 0xc
shl ax, 1
add word [0x437c00], ax
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
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 esi, dword [0x43105c]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
mov eax, dword [eax]
mov esi, dword [ebp + 0xc]
cmp esi, eax
mov byte [ebp - 4], 0x24
je 0x40c417
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], eax
call fcn.0040f4b7
cmp esi, ebx
je 0x40c417
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 6
cmp eax, ebx
je 0x40c428
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
je 0x40c4ed
lea eax, [ebp - 0x14]
push eax
call fcn.0040efbf
mov ecx, dword [eax]
mov byte [ebp - 4], 0x25
cmp ecx, ebx
je 0x40c44f
call fcn.0040f435
mov esi, eax
jmp 0x40c451
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x27
cmp ecx, ebx
je 0x40c486
call fcn.0040f408
mov dword [ebp - 0x14], ebx
push dword [0x437c28]
push 0x274fffff
call fcn.0040fede
mov word [0x437bf2], ax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040b1da
mov esi, eax
mov al, byte [0x437c00]
or al, byte [0x437c2c]
push esi
push 2
add byte [0x437be8], al
call fcn.0040a7bb
inc byte [0x437bed]
push 0x50e5ffff
push 0x826bffff
call fcn.004100bc
add byte [0x437bec], al
add esp, 0x1c
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
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_]
mov esi, dword [0x431060]
mov al, byte [esi]
add al, 0x16
movzx eax, al
add eax, 3
and eax, edi
call fcn.0042c5d0
mov ecx, esp
mov edx, esi
call fcn.004298e5
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040f1db
lea eax, [ebp - 0x14]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 6
call fcn.0042c4e1
mov ecx, eax
call fcn.0040f036
push dword [eax]
lea ecx, [ebp + 0xc]
call fcn.0040f48c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40c547
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
je 0x40c62c
lea eax, [ebp - 0x14]
push eax
call fcn.0040efbf
mov ecx, dword [eax]
mov byte [ebp - 4], 0x29
cmp ecx, ebx
je 0x40c56e
call fcn.0040f435
mov esi, eax
jmp 0x40c570
xor esi, esi
mov al, byte [ebp + 0xf]
push ebx
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_]
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 ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x2b
cmp ecx, ebx
je 0x40c5a5
call fcn.0040f408
mov dword [ebp - 0x14], ebx
push 0x8469ffff
push 0xe607ffff
call fcn.0040fede
mov word [0x437bfe], ax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040b1da
mov ecx, 0x15180
add esp, 0xc
cmp eax, ecx
jb 0x40c5d1
mov eax, ecx
inc byte [0x437bed]
push eax
push 3
mov byte [0x437bef], 1
call fcn.0040a7bb
movsx eax, word [0x437bf4]
push eax
push 0xd081ffff
call fcn.0040ff4b
add dword [0x437c08], eax
push 0xa2fdffff
push 0x813dffff
call fcn.0040ff1a
or byte [0x437bef], 0xff
add esp, 0x18
lea ecx, [ebp - 0x2c]
mov word [0x437c02], ax
push 1
mov byte [ebp - 4], 6
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 [0x437bf1]
or eax, 0x8b79ffff
mov dword [0x437c18], eax
movsx eax, word [0x437bf2]
push eax
push 0x9231ffff
call fcn.0040fede
mov dword [0x437c0c], eax
mov eax, dword [ebp + 0xc]
pop ecx
cmp eax, ebx
pop ecx
mov byte [ebp - 4], 4
je 0x40c667
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x40c678
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x40c688
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x18], 0x80010106
je 0x40c697
call dword [sym.imp.ole32.dll_CoUninitialize]
mov al, 1
jmp 0x40c6c6
mov eax, dword [ebp - 0x10]
mov dword [0x437c20], 0xfbdfffe
cmp eax, ebx
mov byte [ebp - 4], bl
je 0x40c6b5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x18], 0x80010106
je 0x40c6c4
call dword [sym.imp.ole32.dll_CoUninitialize]
xor al, al
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x48]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret