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

Disassembly:
sub esp, 0x48
push ebx
push ebp
mov ebp, dword [esp + 0x54]
push esi
push edi
mov edi, edx
test edi, edi
mov ebx, eax
mov esi, ecx
je 0x4e8c24
test esi, esi
je 0x4e8c24
test ebp, ebp
je 0x4e8c24
movzx eax, word [edi + 8]
push 0x58
push 0
push esi
mov dword [esp + 0x20], eax
call fcn.004727f0
push 0x40
lea ecx, [edi + 0x884]
push 0
push ecx
call fcn.004727f0
add esp, 0x18
cmp ebx, 0x80
jb 0x4e88eb
movzx eax, byte [ebp]
sub eax, 0x54
jne 0x4e88c7
movzx eax, byte [ebp + 1]
sub eax, 0x41
lea ecx, [ebp + 1]
jne 0x4e88c7
movzx eax, byte [ecx + 1]
add ecx, 1
sub eax, 0x47
je 0x4e88d5
test eax, eax
mov ecx, 1
jg 0x4e88d7
or ecx, 0xffffffff
jmp 0x4e88d7
xor ecx, ecx
test ecx, ecx
jne 0x4e88eb
pop edi
mov dword [esi], 0x80
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x48
ret
push ebx
lea edx, [esp + 0x38]
push ebp
push edx
call fcn.004f6710
add esp, 0xc
cmp byte [edi], 0
je 0x4e8926
mov al, byte [edi + 0x8ce]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x3a], al
call fcn.004f94a0
add esp, 8
test al, al
mov byte [esi + 9], al
ja 0x4e8bbe
mov eax, dword [edi + 0x140]
push eax
lea ecx, [edi + 0x66d]
push ecx
lea edx, [esp + 0x3c]
push edx
push esi
push edi
call fcn.004f9fc0
mov bl, byte [edi + 0x14]
add esp, 0x14
cmp byte [esi + 9], 0
ja 0x4e8bbe
test bl, bl
je 0x4e8bba
cmp bl, 0x40
ja 0x4e8bba
lea eax, [esp + 0x34]
push eax
call fcn.004f6810
add eax, 7
shr eax, 3
add esp, 4
cmp byte [esp + 0x49], 0
mov dword [esi], eax
je 0x4e8986
mov byte [esi + 9], 0xe
jmp 0x4e8bbe
lea ecx, [esp + 0x34]
push ecx
call fcn.004f67e0
add esp, 4
cmp byte [edi], 0
jne 0x4e89bd
cmp byte [edi + 1], 0
jne 0x4e89bd
cmp byte [edi + 4], 0
jne 0x4e89a7
mov byte [edi + 4], bl
cmp bl, 8
jne 0x4e89b2
mov byte [edi + 4], 7
jmp 0x4e89d6
cmp bl, 7
jne 0x4e89bd
mov byte [edi + 4], 0
jmp 0x4e89d6
cmp bl, 5
je 0x4e89c7
cmp bl, 6
jne 0x4e89d6
cmp byte [edi + 0x8cd], 0
je 0x4e89d6
mov byte [edi + 0x10], 1
mov bl, 2
cmp bl, 1
mov byte [esp + 0x18], bl
mov byte [edi + 0x11], 0
jne 0x4e89ec
mov byte [edi + 0x11], bl
mov bl, 2
mov byte [esp + 0x18], bl
push edi
call fcn.004e8420
movzx ebp, word [esp + 0x18]
movzx eax, bl
imul eax, ebp
mov dword [esi + 4], eax
mov byte [esi + 8], bl
movzx edx, byte [edi + 2]
push edx
call fcn.004f5810
mov dword [esi + 0xc], eax
mov al, byte [edi + 3]
add esp, 8
mov byte [esi + 0x11], al
mov byte [esi + 0x10], 0
mov byte [esi + 0x12], 0
cmp byte [edi + 1], 0
je 0x4e8a2b
mov byte [esi + 0x12], 1
cmp byte [edi], 0
je 0x4e8a34
mov byte [esi + 0x12], 2
mov cl, byte [edi + 0x468]
mov byte [esi + 0x57], cl
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x4e8a49
cmp byte [edi + 0x76], bl
je 0x4e8ab6
cmp byte [edi + 0x344], 1
movzx edx, byte [edi + 0x8cc]
mov al, byte [edx + 0x5a592f]
mov byte [esp + 0x13], al
jne 0x4e8a6c
cmp byte [edi + 0x346], 0
je 0x4e8a75
cmp byte [edi + 0x345], 1
jne 0x4e8a7b
add al, al
mov byte [esp + 0x13], al
mov edx, dword [esp + 0x64]
test edx, edx
jne 0x4e8ac2
test ecx, ecx
je 0x4e8a94
push ecx
call fcn.004f58e0
mov al, byte [esp + 0x17]
add esp, 4
movzx ecx, al
movzx eax, bl
imul ecx, eax
imul ecx, ebp
push ecx
mov dword [edi + 0x78], 0
call fcn.004f58d0
add esp, 4
mov dword [edi + 0x78], eax
mov byte [edi + 0x76], bl
cmp dword [esp + 0x64], 0
jne 0x4e8ae0
mov ecx, dword [edi + 0x78]
jmp 0x4e8ae6
movzx ecx, al
movzx eax, bl
imul ecx, eax
imul ecx, ebp
cmp edx, ecx
jae 0x4e8ab3
pop edi
mov byte [esi + 9], 0x1b
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x48
ret
mov edx, dword [esp + 0x60]
mov ecx, dword [edx]
cmp byte [edi + 0x344], 1
je 0x4e8af8
cmp byte [edi + 0x345], 1
jne 0x4e8b6e
cmp byte [edi + 0x346], 0
jne 0x4e8b1f
mov eax, dword [esp + 0x14]
lea edx, [eax + eax]
movzx eax, dx
mov edx, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc]
add edx, edx
add eax, eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], eax
xor al, al
cmp byte [edi + 0x15], al
jbe 0x4e8b44
jmp 0x4e8b30
movzx edx, al
cmp dword [edi + edx*4 + 0x378], 0
je 0x4e8b57
add al, 1
cmp al, byte [edi + 0x15]
jb 0x4e8b30
cmp byte [edi + 0x344], 1
jne 0x4e8b5d
mov byte [esi + 0x11], 5
mov byte [esi + 0x10], 1
jmp 0x4e8b61
mov byte [esi + 9], 0x19
jmp 0x4e8bbe
mov byte [esi + 0x10], 3
cmp byte [edi + 0x346], 0
je 0x4e8b6e
mov byte [esi + 0x10], 2
movzx eax, byte [edi + 0x8cc]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
push ecx
lea ecx, [edi + 0x144]
push ecx
push edi
call fcn.004fc430
add dword [edi + 0xc], 1
mov ecx, dword [edi + 0xc]
add esp, 0x18
cmp byte [edi + 3], 0x17
mov byte [edi + 0xa], 0
je 0x4e8ba7
cmp ecx, 1
jmp 0x4e8ba9
test ecx, ecx
ja 0x4e8c26
pop edi
mov dword [esi + 4], 0
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov byte [esi + 9], 0xc
lea esi, [edi + 0x244]
mov ebx, 0x40
lea esp, [esp]
mov eax, dword [esi]
test eax, eax
je 0x4e8bea
movzx edx, word [edi + 8]
add edx, edx
add edx, edx
push edx
push 0
push eax
call fcn.004727f0
add esp, 0xc
add esi, 4
sub ebx, 1
jne 0x4e8bd0
lea esi, [edi + 0x378]
mov edi, 0x30
lea ecx, [ecx]
mov eax, dword [esi]
test eax, eax
je 0x4e8c0f
push eax
call fcn.004fa9a0
add esp, 4
add esi, 4
sub edi, 1
jne 0x4e8c00
lea eax, [esp + 0x34]
push eax
call fcn.004f67e0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret