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

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, dword [esp + 0x64]
push ebp
xor ebp, ebp
push esi
push edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
mov eax, dword [ebx + 0x34]
cmp eax, ebp
je 0x1003062d
mov ecx, dword [ebx + 0x38]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x10]
cmp eax, edx
jae 0x1003062d
mov edi, dword [ebx + 0x34]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x74]
add edi, eax
mov bl, 1
cmp ebp, dword [esp + 0x78]
jae 0x10030600
mov cl, byte [esp + 0x7c]
push 0
mov byte [esp + 0x1c], cl
lea ecx, [esp + 0x1c]
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
lea edx, [esp + 0x1c]
push edi
push edx
call fcn.100307c0
add esp, 0xc
test al, al
je 0x100305e8
lea eax, [esi + 0x10]
lea ecx, [esp + 0x18]
push eax
push ecx
call dword [sym.imp.MSVCP60.dll_bool___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, 8
test al, al
je 0x100305e8
mov bl, 1
jmp 0x100305ea
xor bl, bl
push 1
lea ecx, [esp + 0x1c]
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 ebp
add esi, 0x20
test bl, bl
jne 0x100305a1
jmp 0x10030604
test bl, bl
jne 0x10030623
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x70]
inc ecx
add eax, 0x44
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
xor ebp, ebp
jmp 0x10030565
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
mov al, byte [esp + 0x7c]
test al, al
je 0x100307aa
mov dl, byte [esp + 0x7c]
push ebp
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], 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 edi, 0x10054578
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10054578
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__::assign_char_const___unsigned_int_]
mov al, byte [esp + 0x7c]
push ebp
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3c], 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_]
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x4c]
call fcn.10008e10
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x58]
push edx
call fcn.10008e10
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 edx, dword [esp + 0x80]
mov dword [esp + 0x68], ebp
mov ecx, dword [eax]
push ecx
push ebp
push edx
lea ecx, [esp + 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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov edi, dword [esp + 0x78]
cmp edi, ebp
jbe 0x100306dc
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x50]
push esi
push 1
push eax
lea ecx, [esp + 0x54]
call fcn.1000c000
add esi, 0x20
dec edi
jne 0x100306c5
mov edx, dword [ebx + 0x38]
lea esi, [ebx + 0x30]
lea ecx, [esp + 0x28]
push ecx
push 1
push edx
mov ecx, esi
call fcn.1000c270
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x100306fc
xor edx, edx
jmp 0x10030712
mov esi, dword [esi + 8]
sub esi, eax
mov eax, 0x78787879
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
mov ecx, edx
shl ecx, 4
add ecx, edx
mov edx, dword [ebx + 0x34]
cmp esi, edi
lea ebx, [edx + ecx*4 - 0x44]
je 0x1003073f
push ebp
mov ecx, esi
call fcn.1000d810
add esi, 0x44
cmp esi, edi
jne 0x1003072c
mov esi, dword [esp + 0x5c]
push esi
call fcn.1003ed30
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
add esp, 4
cmp esi, edi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
je 0x10030773
push ebp
mov ecx, esi
call fcn.1000d790
add esi, 0x20
cmp esi, edi
jne 0x10030760
mov esi, dword [esp + 0x4c]
push esi
call fcn.1003ed30
add esp, 4
lea ecx, [esp + 0x38]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
push 1
mov dword [esp + 0x58], 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_]
push 1
lea ecx, [esp + 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_]
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x5c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x5c
ret