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

Disassembly:
push 0xffffffffffffffff
push 0x429073
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
movsx eax, byte [0x4319c8]
mov cl, byte [esp + 0x68]
push ebx
push ebp
mov ebp, dword [0x4319f8]
push esi
push edi
sub eax, ebp
mov byte [esp + 0x44], cl
push 0
lea ecx, [esp + 0x48]
mov dword [esp + 0x14], 0
mov dword [0x4319fc], eax
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 edi, 0x430bc4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x430bc4
lea ecx, [esp + 0x4c]
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 [esp + 0x78]
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
mov dword [esp + 0x78], 1
call fcn.00405ae0
add esp, 0xc
push 1
lea ecx, [esp + 0x48]
mov byte [esp + 0x70], 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_]
movsx edx, byte [0x4319ce]
add word [0x4319e4], 0xfffe
push 0x5537ffff
push edx
call fcn.004109f0
mov bl, byte [0x4319cf]
add bl, al
mov eax, dword [0x431a00]
push eax
push 0x1cbbffff
mov byte [0x4319cf], bl
call fcn.004109f0
mov cl, byte [0x4319ca]
add esp, 0x10
add cl, al
mov byte [0x4319ca], cl
mov cl, byte [esp + 0x78]
mov byte [esp + 0x54], cl
push 0
lea ecx, [esp + 0x58]
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 edi, 0x430bc4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x430bc4
lea ecx, [esp + 0x5c]
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 [esp + 0x7c]
lea edx, [esp + 0x54]
push edx
lea ecx, [esp + 0x38]
push eax
push ecx
mov byte [esp + 0x78], 4
call fcn.00405ae0
add esp, 0xc
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0x70], 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 edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, 0x431988
mov esi, dword [edx]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431990]
cmp eax, esi
jae 0x40ae72
mov esi, eax
test esi, esi
jbe 0x40aeb6
mov ecx, dword [0x43198c]
sub eax, esi
push eax
lea edx, [ecx + esi]
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [0x431990]
add esp, 0xc
sub edi, esi
mov ecx, 0x431988
push 0
push edi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x40aeb6
mov eax, dword [0x43198c]
mov dword [0x431990], edi
mov byte [eax + edi], 0
movsx ecx, word [0x4319d2]
push ecx
push 0x3cf1ffff
call fcn.004108a0
mov cl, byte [0x4319e2]
or dl, 0xff
sub dl, cl
mov cl, byte [0x4319cf]
add word [0x4319d2], ax
add cl, dl
mov eax, dword [esp + 0x40]
mov byte [0x4319cf], cl
mov cx, word [0x4319d4]
add esp, 8
sub cx, word [0x4319e4]
mov ebx, eax
add word [0x4319e0], cx
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
je 0x40b255
mov dl, byte [0x4319da]
mov cl, byte [0x4319ec]
mov al, byte [0x4319cd]
add dl, cl
add al, dl
mov byte [0x4319cd], al
movsx eax, byte [0x4319ca]
push eax
push 0x1779ffff
call fcn.00410970
movsx cx, byte [0x4319cb]
movsx dx, byte [0x4319c9]
mov eax, dword [0x431a00]
add esp, 8
sub edx, ecx
mov byte [esp + 0x78], 0
test eax, eax
mov word [0x4319d4], dx
je 0x40af76
cmp word [0x4319d6], 0
je 0x40af76
mov al, 1
jmp 0x40af78
xor al, al
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [0x4319c8], al
mov ebp, dword [esp + 0x18]
or ecx, 0xffffffff
movsx ax, al
sub ecx, eax
add word [0x4319d8], cx
mov esi, dword [edx]
mov ecx, 0x431958
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431960]
cmp eax, esi
jae 0x40afaf
mov esi, eax
test esi, esi
jbe 0x40aff3
mov ecx, dword [0x43195c]
sub eax, esi
push eax
lea edx, [ecx + esi]
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [0x431960]
add esp, 0xc
sub edi, esi
mov ecx, 0x431958
push 0
push edi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x40aff3
mov eax, dword [0x43195c]
mov dword [0x431960], edi
mov byte [edi + eax], 0
movsx ecx, byte [0x4319cc]
mov eax, dword [esp + 0x1c]
mov edx, 0xb63dffff
sub edx, ecx
mov ecx, dword [0x431a08]
add ecx, edx
cmp ebp, eax
mov dword [0x431a08], ecx
je 0x40b1a6
mov dl, byte [0x4319ca]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
inc dl
mov ecx, 0x431938
mov byte [0x4319ca], dl
mov edi, dword [eax]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431940]
cmp eax, edi
jae 0x40b046
mov edi, eax
test edi, edi
jbe 0x40b08b
mov ecx, dword [0x43193c]
sub eax, edi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [0x431940]
add esp, 0xc
sub esi, edi
mov ecx, 0x431938
push 0
push esi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x40b08b
mov ecx, dword [0x43193c]
mov dword [0x431940], esi
mov byte [esi + ecx], 0
push 0xfbefffff
push 0x82fffff
call fcn.00410860
add word [0x4319de], ax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
add esp, 8
test eax, eax
jne 0x40b0b3
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]
mov edx, dword [ebx + 8]
push ecx
push eax
push edx
push 0
mov ecx, 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]
test eax, eax
je 0x40b15e
mov eax, dword [0x43197c]
mov ecx, dword [0x43198c]
mov edx, dword [0x431990]
mov dword [0x43198c], eax
mov eax, dword [0x431980]
mov dword [0x431980], edx
movsx edx, word [0x4319de]
mov dword [0x43197c], ecx
mov ecx, dword [0x431994]
mov dword [0x431990], eax
mov eax, dword [0x431984]
push edx
push 0xec6bffff
mov dword [0x431984], ecx
mov dword [0x431994], eax
call fcn.004107d0
movsx cx, byte [0x4319ce]
add word [0x4319e4], ax
mov ax, word [0x4319de]
mov esi, dword [0x431a0c]
add word [0x4319e0], ax
mov eax, dword [esp + 0x24]
and ecx, esi
add word [0x4319dc], cx
add ebp, 0x10
add esp, 8
cmp ebp, eax
jne 0x40b01b
jmp 0x40b1a6
movsx edx, byte [0x4319cb]
inc word [0x4319d2]
push 0x72a7ffff
push edx
call fcn.00410970
mov ebp, dword [0x431a04]
push 0x18b3ffff
add ebp, eax
push 0xc1b7ffff
mov dword [0x431a04], ebp
mov byte [esp + 0x88], 1
call fcn.004108e0
add esp, 0x10
add word [0x4319d4], ax
movsx eax, word [0x4319d4]
push 0x3c3bffff
push eax
call fcn.004107d0
mov cl, byte [0x4319cd]
add cl, al
mov byte [0x4319cd], cl
mov ecx, dword [0x4319ec]
push ecx
push 0xbb55ffff
call fcn.004109b0
mov dword [0x4319f0], eax
mov al, byte [esp + 0x88]
add esp, 0x10
test al, al
jne 0x40b1f9
mov edx, dword [esp + 0x1c]
push ebx
push edx
lea ecx, [esp + 0x1c]
call fcn.0040f720
movsx eax, word [0x4319dc]
push 0x3e09ffff
push eax
call fcn.004108e0
mov cl, byte [0x4319cb]
mov ebp, dword [0x431a04]
mov edx, dword [0x4319ec]
add cl, al
mov byte [0x4319cb], cl
mov ecx, dword [0x431a00]
add ebp, 0x1ac5fffe
push ecx
push edx
mov dword [0x431a04], ebp
call fcn.00410920
mov byte [0x4319c8], al
mov eax, dword [esp + 0x4c]
add ebx, 0x10
add esp, 0x10
cmp ebx, eax
jne 0x40af12
movsx eax, word [0x4319d4]
push 0x500fffff
push eax
call fcn.00410970
movsx ecx, byte [0x4319cf]
mov edx, dword [0x4319f8]
push ecx
push edx
mov dword [0x4319f4], eax
call fcn.00410820
add word [0x4319d8], ax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esp, 0x10
mov ecx, 0x431938
mov edi, dword [eax]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431940]
cmp eax, edi
jae 0x40b2a7
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jbe 0x40b2ec
mov ecx, dword [0x43193c]
sub eax, edi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [0x431940]
add esp, 0xc
sub esi, edi
mov ecx, 0x431938
push ebx
push esi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x40b2ec
mov ecx, dword [0x43193c]
mov dword [0x431940], esi
mov byte [esi + ecx], bl
mov dl, byte [esp + 0x78]
push ebx
lea ecx, [esp + 0x28]
mov byte [esp + 0x28], dl
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 [0x431a0c]
xor eax, eax
cmp word [0x4319e0], bx
mov ecx, 0x9115ffff
movsx dx, byte [0x4319d1]
setne al
add esi, eax
mov byte [esp + 0x6c], 8
movsx eax, word [0x4319e4]
sub ecx, eax
mov dword [0x431a0c], esi
movsx eax, word [0x4319dc]
mov esi, dword [esp + 0x18]
push eax
neg edx
push 0x9a97ffff
mov byte [0x4319c9], 0xfe
mov dword [0x4319ec], ecx
mov word [0x4319d8], 0xffff
mov word [0x4319da], dx
call fcn.00410970
mov ecx, dword [0x431a08]
add esp, 8
add ecx, eax
mov eax, dword [esp + 0x1c]
cmp esi, eax
mov dword [0x431a08], ecx
je 0x40b479
mov ax, word [0x4319d4]
movsx edx, byte [0x4319c9]
movsx ecx, ax
or ecx, edx
mov edx, dword [0x431a04]
add edx, ecx
mov ecx, dword [esp + 0x2c]
cmp ecx, ebx
mov dword [0x431a04], edx
jbe 0x40b3d3
mov edi, 0x430bc4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x430bc4
lea ecx, [esp + 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 ax, word [0x4319d4]
mov byte [0x4319ce], 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]
mov ecx, dword [eax]
push ecx
push ebx
push esi
lea ecx, [esp + 0x30]
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 dl, byte [0x4319cd]
mov ecx, 0x431978
push edx
push 1
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_]
movsx eax, byte [0x4319cb]
mov edi, dword [0x431a0c]
mov ecx, dword [0x4319f4]
add edi, 0x40520001
push eax
push ecx
mov dword [0x431a0c], edi
add esi, 0x10
call fcn.00410970
mov dl, byte [0x4319c8]
add esp, 8
add dl, al
mov ax, word [0x4319d4]
cmp ax, bx
mov byte [0x4319c8], dl
mov word [0x4319d2], 1
je 0x40b45d
cmp dword [0x4319f4], ebx
je 0x40b45d
mov ecx, 1
jmp 0x40b45f
xor ecx, ecx
mov edx, dword [0x4319ec]
add edx, ecx
mov ecx, dword [esp + 0x1c]
cmp esi, ecx
mov dword [0x4319ec], edx
jne 0x40b38c
movsx edx, byte [0x4319c9]
push 0x5fd3ffff
push edx
call fcn.004109f0
mov ebp, dword [esp + 0x7c]
mov cl, byte [esp + 0x2c]
mov word [0x4319d8], ax
add esp, 8
movsx eax, word [0x4319d2]
add eax, 0x2c71ffff
push ebx
mov dword [0x431a00], eax
mov byte [ebp], cl
mov ecx, ebp
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 edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [esp + 0x24]
mov eax, dword [edx]
push eax
push ebx
push ecx
mov ecx, ebp
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 dword [esp + 0x10], 1
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x40b4fd
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b4f4
cmp al, 0xff
je 0x40b4f4
dec al
mov byte [ecx], al
jmp 0x40b4fd
push ecx
call fcn.004286a0
add esp, 4
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
cmp esi, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x6c], 3
je 0x40b52d
push ebx
mov ecx, esi
call fcn.004101d0
add esi, 0x10
cmp esi, edi
jne 0x40b51a
mov esi, dword [esp + 0x38]
push esi
call fcn.004286a0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
add esp, 4
cmp esi, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov byte [esp + 0x6c], 0
je 0x40b566
push ebx
mov ecx, esi
call fcn.004101d0
add esi, 0x10
cmp esi, edi
jne 0x40b553
mov esi, dword [esp + 0x18]
push esi
call fcn.004286a0
mov ecx, dword [esp + 0x68]
add esp, 4
mov eax, ebp
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret