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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x54
mov ebp, dword [esp + 0x68]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x228]
mov ebx, dword [esp + 0x6c]
mov edx, eax
sub edx, ecx
sar edx, 1
cmp ebx, edx
jbe 0x61665a
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret
movzx edx, word [esp + 0x78]
movzx esi, word [ecx]
cmp esi, edx
je 0x61666f
movzx edx, word [esp + 0x7c]
cmp esi, edx
jne 0x616676
mov edx, 1
jmp 0x616678
xor edx, edx
mov dword [esp + 0x4c], edx
lea esi, [ecx + ebx*2]
xor ebx, ebx
lea edi, [ebp + 0x24]
mov dword [esp + 0x44], edi
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
sub edi, edx
cmp edi, dword [esp + 0x50]
jbe 0x6166ad
mov ecx, dword [esp + 0x50]
mov ebx, ecx
movsx ebx, byte [ebx + edx]
inc ecx
mov dword [esp + 0x50], ecx
test ebx, ebx
jle 0x616652
mov edx, dword [ebp + 0x228]
mov ecx, esi
sub ecx, edx
sar ecx, 1
sub ecx, dword [esp + 0x80]
sub ecx, dword [esp + 0x4c]
cmp ebx, ecx
jge 0x616652
cmp ebx, 0x7f
je 0x616652
lea ecx, [ebx + ebx]
neg ecx
add ecx, esi
mov dword [esp + 0x48], ecx
cmp eax, ecx
je 0x616913
mov edi, ecx
cmp edx, ebp
jne 0x6166f7
mov ecx, eax
sub ecx, ebp
sar ecx, 1
neg ecx
add ecx, 0x10
jmp 0x6166fe
mov ecx, dword [ebp]
sub ecx, eax
sar ecx, 1
cmp ecx, 1
jbe 0x61673c
xor ecx, ecx
mov word [eax + 2], cx
mov eax, edi
mov ecx, dword [ebp + 0x20]
lea edx, [eax + 2]
sub ecx, esi
lea esi, [ecx + ebx*2]
and esi, 0xfffffffe
push esi
push eax
push edx
call fcn.00743960
add esp, 0xc
movzx eax, word [esp + 0x74]
mov edx, edi
mov word [edx], ax
mov eax, dword [ebp + 0x20]
add eax, 2
mov dword [ebp + 0x20], eax
jmp 0x616869
mov dword [esp + 0x40], 1
sub eax, edx
sar eax, 1
mov edx, eax
mov dword [esp + 0x34], eax
neg edx
add edx, 0x7ffffffe
cmp edx, 1
jb 0x6168fb
mov ecx, 1
lea edx, [esp + 0x40]
cmp ecx, eax
lea ecx, [esp + 0x34]
jb 0x616772
mov ecx, edx
mov edi, dword [ecx]
lea edx, [eax + edi + 1]
mov dword [esp + 0x38], edx
cmp edx, 0x7ffffffe
ja 0x6168ee
cmp eax, dword [esp + 0x38]
ja 0x6168ee
mov eax, dword [esp + 0x38]
cmp eax, 0x101
ja 0x616884
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
add edx, edx
mov dword [esp + 0x38], edx
mov edi, eax
mov eax, dword [esp + 0x48]
mov edx, dword [ebp + 0x228]
sub eax, edx
sar eax, 1
test eax, eax
jle 0x6167e8
mov edi, eax
mov ebp, dword [esp + 0x3c]
xor eax, eax
movzx ecx, word [edx + eax*2]
mov word [ebp + eax*2], cx
inc eax
cmp eax, edi
jb 0x6167cf
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x3c]
lea edi, [edx + eax*2]
movzx eax, word [esp + 0x74]
mov word [edi], ax
mov edx, dword [ebp + 0x20]
lea eax, [edi + 2]
sub edx, esi
lea edx, [edx + ebx*2]
sar edx, 1
test edx, edx
jle 0x616819
mov esi, dword [esp + 0x48]
xor eax, eax
movzx ecx, word [esi + eax*2]
mov word [edi + eax*2 + 2], cx
inc eax
cmp eax, edx
jb 0x616807
lea eax, [edi + eax*2 + 2]
xor edx, edx
mov word [eax], dx
mov ecx, dword [ebp + 0x228]
cmp ecx, ebp
je 0x616853
test ecx, ecx
je 0x616853
mov edx, dword [ebp]
sub edx, ecx
and edx, 0xfffffffe
cmp ecx, dword [esp + 0x44]
je 0x616853
cmp edx, 0x80
jbe 0x616870
push ecx
mov dword [esp + 0x20], eax
call fcn.007424fc
mov eax, dword [esp + 0x20]
add esp, 4
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add edx, ecx
mov dword [ebp], edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x228], ecx
mov esi, edi
jmp 0x61668c
push edx
push ecx
mov dword [esp + 0x24], eax
call fcn.005d3210
mov eax, dword [esp + 0x24]
add esp, 8
jmp 0x616853
cmp eax, 0x7fffffff
jbe 0x6168b2
lea ecx, [esp + 0x10]
push 1
push 0x83b4a0
call fcn.007423ef
mov dword [esp + 0x10], vtable.std::bad_alloc.0
lea eax, [esp + 0x10]
push 0x835848
push eax
call fcn.0074444a
mov eax, dword [esp + 0x38]
add eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
cmp eax, 0x80
jbe 0x6168da
push dword [esp + 0x38]
call fcn.00742a45
pop ecx
mov dword [esp + 0x3c], eax
jmp 0x6167b3
lea eax, [esp + 0x30]
push eax
call fcn.005d3350
pop ecx
mov dword [esp + 0x3c], eax
jmp 0x6167b3
mov dword [esp + 0x38], 0x7ffffffe
jmp 0x616792
push str.basic_string
call fcn.005d3bb0
pop ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
jmp 0x616764
cmp edx, ebp
jne 0x616924
mov ecx, eax
sub ecx, ebp
sar ecx, 1
neg ecx
add ecx, 0x10
jmp 0x61692b
mov ecx, dword [ebp]
sub ecx, eax
sar ecx, 1
cmp ecx, 1
je 0x61694f
xor edx, edx
mov word [eax + 2], dx
movzx eax, word [esp + 0x74]
mov ecx, dword [ebp + 0x20]
mov word [ecx], ax
mov esi, dword [ebp + 0x20]
lea eax, [esi + 2]
mov dword [ebp + 0x20], eax
jmp 0x61668c
mov dword [esp + 0x2c], 1
sub eax, edx
sar eax, 1
mov edx, eax
mov dword [esp + 0x20], eax
neg edx
add edx, 0x7ffffffe
cmp edx, 1
jb 0x616acd
mov ecx, 1
lea edx, [esp + 0x2c]
cmp ecx, eax
lea ecx, [esp + 0x20]
jb 0x616985
mov ecx, edx
mov esi, dword [ecx]
lea edi, [eax + esi + 1]
mov dword [esp + 0x24], edi
cmp edi, 0x7ffffffe
ja 0x616ac0
cmp eax, dword [esp + 0x24]
ja 0x616ac0
mov eax, dword [esp + 0x24]
cmp eax, 0x101
ja 0x616a58
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
add edx, edx
mov dword [esp + 0x24], edx
mov ecx, dword [ebp + 0x228]
mov edx, dword [ebp + 0x20]
sub edx, ecx
sar edx, 1
test edx, edx
jle 0x6169ef
mov edi, eax
xor eax, eax
movzx esi, word [ecx + eax*2]
mov word [edi + eax*2], si
inc eax
cmp eax, edx
jb 0x6169db
mov edx, dword [esp + 0x28]
lea eax, [edx + eax*2]
xor edx, edx
mov word [eax], dx
mov ecx, dword [ebp + 0x228]
cmp ecx, ebp
je 0x616a29
test ecx, ecx
je 0x616a29
mov edx, dword [ebp]
sub edx, ecx
and edx, 0xfffffffe
cmp ecx, dword [esp + 0x44]
je 0x616a29
cmp edx, 0x80
jbe 0x616a44
push ecx
mov dword [esp + 0x20], eax
call fcn.007424fc
mov eax, dword [esp + 0x20]
add esp, 4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [ebp], edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x228], ecx
jmp 0x616930
push edx
push ecx
mov dword [esp + 0x24], eax
call fcn.005d3210
mov eax, dword [esp + 0x24]
add esp, 8
jmp 0x616a29
cmp eax, 0x7fffffff
jbe 0x616a84
lea esi, [esp]
push 1
mov ecx, esi
push 0x83b4a0
call fcn.007423ef
mov dword [esi], vtable.std::bad_alloc.0
lea eax, [esp]
push 0x835848
push eax
call fcn.0074444a
mov eax, dword [esp + 0x24]
add eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], eax
cmp eax, 0x80
jbe 0x616aac
push dword [esp + 0x24]
call fcn.00742a45
pop ecx
mov dword [esp + 0x28], eax
jmp 0x6169c6
lea eax, [esp + 0xc]
push eax
call fcn.005d3350
pop ecx
mov dword [esp + 0x28], eax
jmp 0x6169c6
mov dword [esp + 0x24], 0x7ffffffe
jmp 0x6169a5
push str.basic_string
call fcn.005d3bb0
pop ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
jmp 0x616977