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

Disassembly:
push 0xffffffffffffffff
push 0x1003f9ba
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd0
mov al, byte [0x100481a0]
push esi
xor esi, esi
push edi
test al, 1
mov dword [esp + 0x48], esi
jne 0x10031e26
or al, 1
mov ecx, 0x100481c0
mov byte [0x100481a0], al
lea eax, [esp + 0x33]
push eax
call fcn.10032850
lea ecx, [esp + 0x13]
lea edx, [esp + 0xb]
push ecx
push edx
mov ecx, 0x100481cc
mov dword [esp + 0xe8], 1
call fcn.10032920
push 0x10032510
mov byte [esp + 0xe4], 0
call fcn.1002ce1a
add esp, 4
mov edi, dword [esp + 0xec]
lea eax, [esp + 0x28]
push edi
push eax
mov ecx, 0x100481cc
call fcn.10032ac0
mov eax, dword [0x100481d0]
mov ecx, dword [esp + 0x28]
cmp ecx, eax
je 0x10031f7e
mov edx, dword [0x100481c4]
mov eax, dword [edx + 4]
mov edx, dword [ecx + 0x10]
cmp eax, edx
je 0x10031f45
mov al, byte [esp + 0xb]
push esi
push esi
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call fcn.10032e30
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xe0], 2
mov ecx, dword [ecx + 0x10]
cmp eax, ecx
je 0x10031ec2
mov edx, dword [ecx]
cmp eax, edx
je 0x10031ec2
push edx
push ecx
push 0x100481c0
push eax
lea ecx, [esp + 0x24]
call fcn.10032e60
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x100481c8]
inc ecx
dec eax
mov dword [0x100481c8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax]
mov ecx, dword [0x100481c4]
cmp ecx, eax
je 0x10031f02
mov edx, dword [eax]
cmp ecx, edx
je 0x10031f02
push edx
lea edx, [esp + 0x18]
push eax
push edx
push ecx
mov ecx, 0x100481c0
call fcn.10032e60
mov ecx, dword [0x100481c8]
mov eax, dword [esp + 0x1c]
inc ecx
dec eax
mov dword [0x100481c8], ecx
mov ecx, dword [0x100481c4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + 4]
lea edx, [esp + 0xc]
mov byte [esp + 0xe0], 0
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x18]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.10019930
mov eax, dword [eax]
lea ecx, [esp + 0x44]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.10032dd0
mov edx, dword [esp + 0x18]
push edx
call fcn.1002cda0
add esp, 4
mov eax, dword [0x100481c4]
mov esi, dword [esp + 0xe8]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
add eax, 0xc
mov dword [esi], ecx
push eax
lea ecx, [esi + 4]
call fcn.100324d0
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
add esp, 0xdc
ret
push ebx
push ebp
push 0x43c
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ebp, eax
add esp, 4
mov dword [esp + 0x48], ebp
cmp ebp, esi
mov dword [esp + 0xe8], 3
je 0x10032328
mov eax, dword [edi]
mov ecx, ebp
push eax
call fcn.100324f0
lea edx, [esp + 0x13]
lea ebx, [ebp + 0x404]
lea eax, [esp + 0x1b]
push edx
push eax
mov ecx, ebx
call fcn.100374f0
lea edx, [esp + 0x39]
lea eax, [esp + 0x37]
push edx
lea ecx, [ebp + 0x414]
push eax
mov byte [esp + 0xf0], 4
call fcn.100376f0
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x3d]
push ecx
push edx
lea ecx, [ebp + 0x424]
mov byte [esp + 0xf0], 5
call fcn.10037880
lea ecx, [esp + 0x28]
mov byte [esp + 0xe8], 6
call fcn.1001ecf0
lea eax, [esp + 0x64]
mov byte [esp + 0xe8], 7
push eax
call fcn.1003a3c0
add esp, 4
mov eax, dword [esp + 0x6c]
mov byte [esp + 0xe8], 8
cmp eax, esi
je 0x10032116
lea edx, [esp + 0x64]
lea ecx, [esp + 0x1c]
call fcn.1003d7c0
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0xec], 9
call fcn.10037480
lea ecx, [esp + 0x20]
mov byte [esp + 0xe8], 8
call fcn.1001e920
cmp dword [esp + 0x28], esi
jne 0x10032120
lea ecx, [esp + 0x3f]
push ecx
push str.Unable_to_open_message_catalog:
lea ecx, [esp + 0xac]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
lea edx, [esp + 0x64]
lea eax, [esp + 0xa4]
push edx
lea ecx, [esp + 0xb8]
push eax
push ecx
mov byte [esp + 0xf4], 0xa
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
push eax
lea ecx, [esp + 0xc8]
mov byte [esp + 0xec], 0xb
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::runtime_error::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push 1
lea ecx, [esp + 0xb8]
mov byte [esp + 0xec], 0xd
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [esp + 0xc4]
call fcn.1003c9f0
lea ecx, [esp + 0xc4]
mov byte [esp + 0xe8], 0xa
call dword [sym.imp.MSVCP60.dll_public_virtual:_void___thiscall_std::runtime_error::destructor_void_]
push 1
lea ecx, [esp + 0xa8]
mov byte [esp + 0xec], 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_]
cmp dword [esp + 0x28], esi
je 0x100322eb
mov ecx, esi
call fcn.1003d190
lea edx, [esp + 0x3a]
lea ecx, [esp + 0x84]
push edx
mov edi, eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::allocator_char__const__]
mov al, byte [edi]
mov byte [esp + 0xe8], 0xe
test al, al
je 0x10032161
push eax
push 1
lea ecx, [esp + 0x8c]
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_unsigned_int__char_]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10032149
mov edx, dword [ebp]
lea eax, [esp + 0x84]
lea ecx, [esi + 0xc8]
push eax
push ecx
push edx
lea edx, [esp + 0x34]
lea ecx, [esp + 0x60]
call fcn.1003d8a0
lea eax, [esp + 0x3e]
lea ecx, [esp + 0x74]
push eax
mov byte [esp + 0xec], 0xf
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::allocator_char__const__]
mov eax, dword [esp + 0x5c]
xor edi, edi
test eax, eax
mov byte [esp + 0xe8], 0x10
jbe 0x100321cd
push edi
lea ecx, [esp + 0x58]
call dword [sym.imp.MSVCP60.dll_public:_char____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator___unsigned_int_]
mov cl, byte [eax]
push ecx
push 1
lea ecx, [esp + 0x7c]
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_unsigned_int__char_]
mov eax, dword [esp + 0x5c]
inc edi
cmp edi, eax
jb 0x100321aa
lea edx, [esp + 0x14]
mov ecx, ebx
push edx
mov dword [esp + 0x18], esi
call fcn.100375a0
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov edx, dword [ecx]
lea ecx, [esp + 0x74]
push edx
push 0
push ecx
mov ecx, 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 1
lea ecx, [esp + 0x78]
mov byte [esp + 0xec], 0xf
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, [esp + 0x58]
mov byte [esp + 0xec], 0xe
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, [esp + 0x88]
mov byte [esp + 0xec], 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_]
inc esi
cmp esi, 0x14
jle 0x10032120
mov al, byte [0x100481dc]
test al, 1
jne 0x1003226f
mov bl, al
lea edx, [esp + 0x38]
or bl, 1
push edx
mov ecx, 0x100481e0
mov byte [0x100481dc], bl
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::allocator_char__const__]
push 0x10037130
call fcn.1002ce1a
add esp, 4
xor edi, edi
mov esi, 0x10041874
mov bl, 0x11
mov ecx, dword [ebp]
lea eax, [edi + 0x12c]
push 0x100481e0
push eax
push ecx
lea edx, [esp + 0x34]
lea ecx, [esp + 0xa0]
call fcn.1003d8a0
mov eax, dword [esp + 0x9c]
mov byte [esp + 0xe8], bl
test eax, eax
je 0x100322c1
lea edx, [esp + 0x94]
lea ecx, [ebp + 0x414]
push edx
call fcn.100377a0
mov ecx, dword [esi]
mov dword [eax], ecx
push 1
lea ecx, [esp + 0x98]
mov byte [esp + 0xec], 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_]
add esi, 4
inc edi
cmp esi, 0x100418a8
jbe 0x10032278
mov edi, dword [esp + 0xf4]
lea edx, [ebp + 0x438]
push edx
push ebp
call fcn.1003bcd0
add esp, 8
lea ecx, [esp + 0x64]
mov dword [ebp + 0x434], eax
mov byte [esp + 0xe8], 7
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_]
lea ecx, [esp + 0x2c]
mov byte [esp + 0xe8], 6
call fcn.1001e920
mov esi, ebp
push esi
lea ecx, [esp + 0x48]
mov byte [esp + 0xec], 0
mov dword [esp + 0x44], esi
call fcn.1003b500
push esi
lea eax, [esp + 0x48]
push esi
push eax
call fcn.1001d8b0
add esp, 0xc
lea ecx, [esp + 0x40]
mov ebx, 0x12
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0xec], ebx
call fcn.10032700
mov dword [esp + 0x24], 0
mov eax, dword [0x100481c4]
lea edx, [esp + 0x1c]
push edx
push eax
lea eax, [esp + 0x50]
mov ecx, 0x100481c0
push eax
mov byte [esp + 0xf4], 0x13
call fcn.10032d70
lea ecx, [esp + 0x20]
mov byte [esp + 0xe8], bl
call fcn.1001e920
mov eax, dword [0x100481c4]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
push edx
mov ecx, dword [eax + 4]
push edi
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x24]
call fcn.1001ff50
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x28]
push eax
call fcn.10036fd0
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push ecx
push edx
mov ecx, 0x100481cc
call fcn.100329d0
lea eax, [esp + 0x48]
push edi
push eax
mov ecx, 0x100481cc
call fcn.10032ac0
mov ecx, dword [0x100481c4]
mov eax, dword [eax]
mov ebx, dword [esp + 0xf8]
add eax, 0xc
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x10], eax
mov edi, dword [0x100481d8]
cmp edi, ebx
jbe 0x1003247c
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x100481c0
call fcn.10019930
mov ebp, dword [0x100481c4]
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x1003247c
cmp edi, ebx
jbe 0x1003247c
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x10032471
mov edx, dword [ecx + 4]
cmp edx, 1
jne 0x10032471
mov edx, dword [eax]
mov esi, eax
mov dword [esp + 0x14], edx
mov ecx, 0x100481cc
mov eax, dword [esi + 0x10]
push eax
call fcn.10032eb0
lea eax, [esp + 0x48]
push esi
push eax
mov ecx, 0x100481c0
call fcn.100328e0
mov eax, dword [esp + 0x14]
dec edi
jmp 0x10032478
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
cmp eax, ebp
jne 0x10032431
mov esi, dword [esp + 0xf0]
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.10032700
lea ecx, [esp + 0x44]
mov dword [esp + 0x50], 1
mov byte [esp + 0xe8], 0
call fcn.1001e920
mov ecx, dword [esp + 0xe0]
pop ebp
pop ebx
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0xdc
ret