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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x7c]
test ebp, ebp
mov dword [esp + 0x1c], eax
mov ecx, ebp
jle 0x603da7
xor edi, edi
mov dword [esp + 0x20], ebp
mov ecx, eax
lea esi, [esi]
movzx eax, word [ecx + edi*2]
mov ebx, edi
lea edx, [eax - 9]
cmp edx, 4
jbe 0x603aa5
cmp eax, 0x20
je 0x603aa5
cmp eax, 0x7f
jbe 0x60380b
cmp eax, 0x85
je 0x603aa5
cmp eax, 0xa0
je 0x603aa5
mov dword [esp + 0x24], ecx
call fcn.0058e7a0
test al, al
mov ecx, dword [esp + 0x24]
jne 0x603aa5
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x20]
and eax, 2
cmp ebp, edi
mov dword [esp + 0x2c], eax
jle 0x603d50
mov ebp, ecx
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + ebp*2 - 2]
lea edx, [eax - 9]
cmp edx, 4
jbe 0x603a30
cmp eax, 0x20
je 0x603a30
cmp eax, 0x7f
jbe 0x60386a
cmp eax, 0x85
je 0x603a30
cmp eax, 0xa0
je 0x603a30
call fcn.0058e7a0
test al, al
jne 0x603a30
cmp edi, ebp
mov ecx, ebp
jge 0x603d50
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ebp
mov ebp, ebx
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
and eax, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x78]
and eax, 0x20
mov dword [esp + 0x30], eax
lea eax, [esi + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
mov edx, ebp
movzx edi, word [eax + ebp*2]
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 0xe]
lea ecx, [eax + 0xa]
cmp di, cx
jae 0x6038da
cmp di, ax
jae 0x603be0
lea eax, [edi - 0x30]
cmp ax, 9
jbe 0x603c40
mov eax, dword [esp + 0x18]
cmp word [eax + 0x12], di
je 0x603c20
cmp di, 0x2b
je 0x603c20
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
cmp word [edx + 0x10], di
sete cl
cmp di, 0x2d
sete al
or cl, al
jne 0x603c30
cmp di, 0x2212
je 0x603c30
cmp di, word [edx + 6]
je 0x603bf2
movzx ebx, word [edx + 8]
cmp di, bx
je 0x603cf0
movzx eax, word [edx + 0x14]
cmp di, ax
je 0x603d40
call fcn.0058ea50
cmp di, ax
je 0x603d40
cmp bx, 0xa0
mov edx, dword [esp + 0x3c]
sete al
cmp bx, 0x202f
sete cl
or al, cl
je 0x603980
cmp di, 0x20
je 0x603cf0
lea esi, [esi]
mov eax, dword [esp + 0x18]
cmp word [eax + 0xa], di
je 0x603ca0
cmp word [eax + 0xc], di
je 0x603cb0
lea eax, [edi - 0x41]
cmp ax, 0x19
jbe 0x603d20
lea eax, [edi - 0x61]
cmp ax, 0x19
ja 0x603ddb
mov ebx, edi
mov edi, dword [esp + 0x30]
test edi, edi
je 0x6039db
mov ecx, dword [esp + 0x24]
test ecx, ecx
js 0x6039db
cmp ebp, dword [esp + 0x20]
jne 0x6039db
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
cmp byte [edx + eax - 1], 0x30
je 0x603ab0
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x603a04
cmp dword [esp + 0x34], 0xffffffff
jne 0x603ac0
cmp bl, 0x2f
jle 0x603ac0
cmp bl, 0x39
jg 0x603b24
mov dword [esp + 0x34], ebp
mov edi, dword [esi + 4]
cmp edi, dword [esi]
mov edx, dword [esi + 8]
je 0x603b70
lea eax, [edi + 1]
mov dword [esi + 4], eax
mov byte [edx + edi], bl
lea edi, [ebp + 1]
cmp dword [esp + 0x28], edi
mov ebp, edi
jg 0x6038b7
mov ecx, dword [esp + 0x28]
jmp 0x603a55
sub ebp, 1
cmp ebp, edi
jne 0x603824
mov ecx, ebp
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x603d70
test byte [esp + 0x78], 0x20
mov ebx, dword [esi + 4]
mov ebp, dword [esi + 8]
je 0x603a83
cmp dword [esp + 0x24], 0xffffffff
je 0x603a83
cmp dword [esp + 0x20], 0xffffffff
jne 0x603a83
cmp byte [ebp + ebx - 1], 0x30
je 0x603ab0
cmp dword [esi], ebx
je 0x603de6
lea eax, [ebx + 1]
cmp ecx, edi
mov dword [esi + 4], eax
mov byte [ebp + ebx], 0
sete al
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
add edi, 1
cmp edi, ebp
jne 0x6037c0
add esp, 0x5c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp bl, 0x2c
jne 0x603b24
cmp dword [esp + 0x24], 0xffffffff
jne 0x603ab0
cmp dword [esp + 0x20], 0xffffffff
jne 0x603ab0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
cmp word [eax + 4], 0x64
je 0x603d00
cmp ecx, 0xffffffff
je 0x603b10
mov eax, ebp
sub eax, ecx
cmp eax, 4
jne 0x603ab0
lea edi, [ebp + 1]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
jmp 0x603a1e
mov ebx, dword [esp + 0x34]
cmp ebx, 0xffffffff
je 0x603ab0
mov eax, ebp
sub eax, ebx
cmp eax, 3
jg 0x603ab0
jmp 0x603af4
mov eax, ebx
and eax, 0xffffffdf
cmp al, 0x45
je 0x603b36
cmp bl, 0x2e
jne 0x603a04
mov ecx, dword [esp + 0x38]
cmp ecx, 0xffffffff
je 0x603a04
mov eax, ebp
sub eax, ecx
cmp eax, 4
jne 0x603ab0
mov edi, dword [esi + 4]
cmp edi, dword [esi]
mov dword [esp + 0x38], 0xffffffff
mov edx, dword [esi + 8]
jne 0x603a12
lea esi, [esi]
lea edi, [edi]
lea ecx, [edi + edi]
cmp edi, ecx
je 0x603a12
cmp ecx, 0x100
jg 0x603cc0
mov eax, dword [esp + 0x40]
mov dword [esi], 0x100
mov dword [esi + 8], eax
mov dword [esi + 4], 0
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 0x3c], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x3c]
cmp edx, dword [esp + 0x40]
mov eax, dword [esi + 8]
mov dword [esi + 4], edi
je 0x603da0
cmp edx, eax
je 0x603a12
mov dword [esp], edx
call sub.msvcrt.dll_free
mov edx, dword [esi + 8]
jmp 0x603a12
mov ebx, edi
sub ebx, eax
add bl, 0x30
je 0x603980
cmp bl, 0x2e
jne 0x603c42
cmp dword [esp + 0x24], 0xffffffff
jne 0x603ab0
cmp dword [esp + 0x20], 0xffffffff
jne 0x603ab0
mov dword [esp + 0x24], ebp
mov ebx, 0x2e
mov dword [esp + 0x20], 0xffffffff
jmp 0x6039b4
mov ebx, 0x2b
jmp 0x6039b4
mov ebx, 0x2d
jmp 0x6039b4
mov ebx, edi
mov eax, ebx
and eax, 0xffffffdf
cmp al, 0x45
mov eax, dword [esp + 0x20]
cmove eax, ebp
mov dword [esp + 0x20], eax
cmp dword [esp + 0x44], 0
je 0x6039b4
cmp dword [esp + 0x20], 0xffffffff
je 0x6039b4
cmp bl, 0x30
jne 0x6039b4
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, ebp
jle 0x603dd1
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
movzx eax, byte [edx + eax - 1]
sub eax, 0x30
cmp al, 9
jbe 0x6039b4
jmp 0x603ab0
mov ebx, 0x3b
jmp 0x6039b4
mov ebx, 0x25
jmp 0x6039b4
mov dword [esp], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], ecx
call sub.msvcrt.dll_malloc
test eax, eax
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
je 0x603e81
mov dword [esi + 8], eax
mov dword [esi], ecx
jmp 0x603b94
mov ebx, 0x2c
jmp 0x6039b4
cmp ecx, 0xffffffff
je 0x603b10
mov eax, ebp
sub eax, ecx
cmp eax, 3
je 0x603af4
jmp 0x603ab0
movzx eax, di
call fcn.0058ea00
cmp ax, 0xff
mov ebx, eax
jbe 0x603c54
xor ebx, ebx
jmp 0x6039b4
mov dword [esp + 0x20], ebp
mov ebx, 0x65
jmp 0x6039b4
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
jmp 0x603a55
mov ebx, dword [esp + 0x38]
lea eax, [ebx + 1]
cmp edi, eax
je 0x603ab0
cmp ebx, 0xffffffff
je 0x603a61
mov eax, edi
sub eax, ebx
cmp eax, 4
jne 0x603ab0
jmp 0x603a61
mov edx, eax
jmp 0x603a12
test ebp, ebp
je 0x603ab0
test byte [esp + 0x78], 2
je 0x603ab0
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
xor edi, edi
jmp 0x603a61
mov ebx, 0x30
jmp 0x6039b4
mov ecx, dword [esp + 0x28]
mov edi, edx
jmp 0x603a55
lea edx, [ebx + ebx]
lea eax, [esi + 0x10]
cmp ebx, edx
mov dword [esp + 0x18], eax
je 0x603a8b
cmp edx, 0x100
jg 0x603e57
lea eax, [esi + 0x10]
mov dword [esi], 0x100
mov dword [esi + 8], eax
mov dword [esi + 4], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov dword [esp], eax
mov dword [esp + 0x1c], ecx
call sub.msvcrt.dll_memcpy
cmp ebp, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov dword [esi + 4], ebx
mov ecx, dword [esp + 0x1c]
je 0x603e7a
cmp eax, ebp
je 0x603a8b
mov dword [esp], ebp
mov dword [esp + 0x18], ecx
call sub.msvcrt.dll_free
mov ebp, dword [esi + 8]
mov ecx, dword [esp + 0x18]
jmp 0x603a8b
mov dword [esp], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_malloc
test eax, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
je 0x603e9b
mov dword [esi + 8], eax
mov dword [esi], edx
jmp 0x603e0c
mov ebp, eax
jmp 0x603a8b
mov dword [esp + 0x4c], eax
call fcn.0071fff4
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
jmp 0x603ce0
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
call fcn.0071fff4
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x603e73