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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4a3bdb
mov ebx, dword [ecx + 0xc]
lea ecx, [esp + 0x48]
mov edx, ebx
push 1
push 0x93c854
mov dword [esp + 0x40], eax
push eax
call fcn.0046b780
add esp, 0xc
cmp dword [esp + 0x48], 0
je 0x4a3a12
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x20], edi
sub edi, ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
cmp edi, eax
jae 0x4a3bdb
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x60]
cmova eax, ecx
mov dword [esp + 0x24], eax
sub eax, ecx
mov dword [esp + 0x34], eax
mov eax, ecx
neg eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], eax
add eax, ecx
mov dword [esp + 0x2c], eax
jmp 0x4a3905
cmp dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 4]
mov edi, dword [esp + 0xc]
je 0x4a38f3
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
sub edi, dword [esp + 4]
cmp edi, dword [esp + 8]
jae 0x4a3bdb
movzx ecx, byte [esi + edi]
mov dword [esp + 0xc], edi
mov edi, 1
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x3c]
and edi, dword [esp + 0x40]
or edi, eax
je 0x4a38e0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
cmp eax, edi
cmovb edi, eax
cmp dword [esp + 0x10], 0xffffffff
cmove edi, eax
lea eax, [edi - 1]
sub edi, 1
jb 0x4a39a0
cmp eax, dword [esp + 4]
jae 0x4a3c28
mov ecx, dword [esp + 0xc]
add ecx, edi
cmp ecx, dword [esp + 8]
jae 0x4a3c38
mov edx, dword [esp + 0x44]
movzx edx, byte [edx + edi]
cmp dl, byte [esi + ecx]
je 0x4a3950
add edi, dword [esp + 0x20]
mov eax, dword [esp + 4]
sub edi, dword [esp + 0x14]
cmp dword [esp + 0x10], 0xffffffff
jne 0x4a38ef
jmp 0x4a38f3
cmp dword [esp + 0x10], 0xffffffff
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x2c]
cmove ecx, dword [esp + 4]
lea edi, [edx + eax]
mov eax, dword [esp + 0x34]
cmp ecx, edx
cmovbe ecx, edx
add ecx, dword [esp + 0x30]
nop word [eax + eax]
sub ecx, 1
jb 0x4a3a5f
sub eax, 1
jb 0x4a3c64
cmp edi, dword [esp + 8]
jae 0x4a3c76
movzx edx, byte [ebx]
inc ebx
cmp dl, byte [esi + edi]
lea edi, [edi + 1]
je 0x4a39d0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
sub edi, eax
cmp dword [esp + 0x10], 0xffffffff
jne 0x4a38ef
jmp 0x4a38f3
cmp byte [esp + 0x56], 0
jne 0x4a3bdb
mov edi, dword [esp + 0x50]
movzx eax, byte [esp + 0x55]
test edi, edi
je 0x4a3b42
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
cmp edi, ecx
mov dword [esp + 8], ecx
jae 0x4a3b53
cmp byte [esi + edi], 0xc0
jge 0x4a3b59
mov ecx, esi
mov edx, dword [esp + 8]
push 0x834a54
push edi
push 0
call fcn.007c2190
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
inc eax
jne 0x4a3a72
mov esi, edx
jmp 0x4a3a8e
mov esi, edx
sub esi, eax
jbe 0x4a3a8c
cmp byte [ebx + eax], 0xc0
jge 0x4a3a8e
mov ecx, ebx
push 0x834f3c
push edx
push eax
call fcn.007c2190
jne 0x4a3a7e
test esi, esi
je 0x4a3bdb
add ebx, eax
movzx eax, byte [ebx]
cmp eax, 0x2d
je 0x4a3aaf
cmp eax, 0x2b
jne 0x4a3ab8
dec esi
je 0x4a3bdb
inc ebx
jmp 0x4a3ab8
cmp esi, 1
je 0x4a3bdb
xor edx, edx
mov edi, ebx
cmp esi, 5
jae 0x4a3b00
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx eax, byte [edi]
add eax, 0xffffffd0
cmp eax, 9
ja 0x4a3bdb
add edx, edx
inc edi
mov cx, 1
lea edx, [edx + edx*4]
add edx, eax
dec esi
jne 0x4a3ad0
jmp 0x4a3bdd
test esi, esi
je 0x4a3ba6
movzx ebx, byte [edi]
mov eax, edx
mov cx, 0xa
mul cx
seto byte [esp + 8]
xor ecx, ecx
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x4a3bdd
cmp byte [esp + 8], 0
mov edx, eax
jne 0x4a3bdd
inc edi
dec esi
xor ecx, ecx
add dx, bx
jae 0x4a3b00
jmp 0x4a3bdd
mov ecx, eax
xor eax, eax
test cl, cl
jne 0x4a3a67
jmp 0x4a3bdb
jne 0x4a3a4c
movzx ecx, byte [esi + edi - 1]
movzx edx, cl
test cl, cl
jns 0x4a3bc8
mov dword [esp + 0x18], ebx
movzx ebx, byte [esi + edi - 2]
cmp bl, 0xbf
jg 0x4a3bac
movzx ecx, byte [esi + edi - 3]
cmp cl, 0xbf
jg 0x4a3bb1
mov byte [esp + 0xc], al
mov eax, esi
movzx esi, byte [esi + edi - 4]
and ecx, 0x3f
mov dword [esp + 4], esi
and dword [esp + 4], 7
shl dword [esp + 4], 6
mov esi, eax
movzx eax, byte [esp + 0xc]
add ecx, dword [esp + 4]
jmp 0x4a3bb4
mov cx, 1
jmp 0x4a3bdd
and ebx, 0x1f
jmp 0x4a3bbc
and ecx, 0xf
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
shl ebx, 6
and edx, 0x3f
or edx, ebx
mov ebx, dword [esp + 0x18]
test al, al
je 0x4a3bd3
mov eax, edi
jmp 0x4a3a67
cmp edx, 0x110000
jne 0x4a3be7
xor ecx, ecx
mov eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 0xffffffff
cmp edx, 0x80
jb 0x4a3c0f
mov eax, 0xfffffffe
cmp edx, 0x800
jb 0x4a3c0f
xor eax, eax
cmp edx, 0x10000
setb al
or eax, 0xfffffffc
add eax, edi
je 0x4a3c46
cmp eax, dword [esp + 8]
jae 0x4a3c4d
cmp byte [esi + eax], 0xbf
jg 0x4a3c4f
mov ecx, esi
mov edi, eax
jmp 0x4a3a4e
mov edx, dword [esp + 4]
mov ecx, edi
push 0x8349f4
call fcn.007c1be0
mov edx, dword [esp + 8]
push 0x834a04
call fcn.007c1be0
xor eax, eax
jmp 0x4a3a67
jne 0x4a3c1f
cmp byte [esi + eax - 1], 0
jns 0x4a3a67
cmp byte [esi + eax - 2], 0xbf
jmp 0x4a3a67
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 4]
push 0x8349d4
call fcn.007c1be0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 8]
add ecx, dword [esp + 0xc]
cmp edx, ecx
cmova ecx, edx
push 0x8349e4
call fcn.007c1be0
int3