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

Disassembly:
sub esp, 0x60
mov dword [esp + 0x38], edx
mov dword [esp], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
push ebx
push ebp
mov eax, dword [edx + 4]
mov ebx, dword [ecx]
mov ebp, dword [ecx + 4]
push esi
push edi
mov esi, eax
mov edi, eax
sub esi, ebx
mov ebx, dword [ecx + 8]
sub edi, ebp
mov ebp, eax
add esi, 0x10
sub ebp, ebx
mov ebx, dword [ecx + 0xc]
mov ecx, dword [edx]
sub eax, ebx
add eax, 0x20
add ebp, 0x10
mov ebx, eax
cmp edi, esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x64], edi
jl 0x4e5dfc
mov dword [esp + 0x64], esi
cmp ebx, esi
lea eax, [ecx + 0x20]
mov dword [esp + 0x6c], ebx
jg 0x4e5e0b
mov dword [esp + 0x6c], esi
mov ebx, dword [esp + 0x7c]
mov edx, dword [ebx + 8]
cmp ecx, edx
jge 0x4e612e
cmp dword [ebx], eax
jge 0x4e612a
mov eax, ebx
mov ebx, dword [esp + 0x64]
mov eax, dword [eax + 0xc]
cmp ebx, eax
jge 0x4e612a
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x6c]
mov eax, dword [eax + 4]
cmp eax, ebx
jge 0x4e612a
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x28], ebx
mov eax, dword [eax + 0xc]
cmp ebx, eax
jl 0x4e5e59
mov dword [esp + 0x28], eax
lea eax, [ecx + 0x20]
cmp eax, edx
jl 0x4e5e62
mov eax, edx
mov ebx, dword [esp + 0x7c]
mov edx, dword [ebx + 4]
cmp dword [esp + 0x64], edx
jle 0x4e5e73
mov edx, dword [esp + 0x64]
mov dword [esp + 0x24], edx
mov edx, dword [ebx]
cmp ecx, edx
jle 0x4e5e7f
mov edx, ecx
sub eax, ecx
sub edx, ecx
cmp edx, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x20], edx
jge 0x4e612e
mov ebx, dword [esp + 0x38]
mov ecx, esi
sub ebx, esi
mov eax, 0x1f
sub ecx, edi
mov dword [esp + 0x54], ebx
imul ebx, edx
sub eax, edx
mov edx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ebx
neg edx
imul eax, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x30], eax
jmp 0x4e5ed0
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
mov eax, ebx
cdq
and edx, 0x1f
sar ecx, 5
add eax, edx
add ecx, edi
mov edi, eax
sar edi, 5
add edi, esi
mov eax, edi
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
cmp ecx, eax
jge 0x4e60e2
cmp edi, dword [esp + 0x24]
jle 0x4e60e2
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4e60e2
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x84]
cdq
sub eax, edx
mov bl, byte [esi + 4]
sar eax, 1
shl eax, 1
mov edx, eax
mov eax, 0x1f
sub eax, edx
xor edx, edx
cmp bl, 4
mov ebx, dword [esp + 0x20]
sete dl
shl edx, 6
add edx, ebx
mov dword [esp + 0x50], eax
mov ebp, dword [edx*4 + 0x74c658]
mov edx, dword [esi + 8]
mov esi, dword [esp + 0x24]
add ebp, edx
xor edx, edx
cmp ecx, esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
jle 0x4e5f76
mov ebx, ecx
mov dword [esp + 0x80], edx
jmp 0x4e5fab
mov ebx, esi
sub esi, ecx
imul esi, eax
mov eax, esi
cdq
idiv dword [esp + 0x14]
mov ecx, eax
mov eax, esi
cdq
idiv dword [esp + 0x14]
mov eax, ecx
sar eax, 1
add ebp, eax
test cl, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x80], edx
je 0x4e5fab
mov dword [esp + 0x18], 4
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x20]
mov ebp, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
imul ebp, ebx
mov eax, dword [esp + 0x28]
add ebp, ecx
mov ecx, dword [esp + 0x78]
add ebp, dword [ecx]
add ebp, edx
cmp edi, eax
jl 0x4e5fd0
mov edi, eax
mov edx, dword [esp + 0x10]
sub edi, ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov al, byte [ecx]
mov cl, byte [esp + 0x18]
mov esi, eax
shr esi, cl
and esi, 0xf
cmp esi, 0xf
ja case.0x4e5ffa.15
jmp dword [esi*4 + 0x4e6470]
mov al, bl
jmp 0x4e607a
mov al, dl
mov cl, bl
shr al, 3
shr cl, 3
sub al, cl
add al, bl
jmp 0x4e607a
mov al, dl
mov cl, bl
shr al, 2
shr cl, 2
sub al, cl
add al, bl
jmp 0x4e607a
mov al, dl
mov cl, bl
shr al, 1
shr cl, 1
sub al, cl
add al, bl
jmp 0x4e607a
mov cl, dl
mov al, bl
shr cl, 2
shr al, 2
sub al, cl
add al, dl
jmp 0x4e607a
mov cl, dl
mov al, bl
shr cl, 3
shr al, 3
sub al, cl
add al, dl
jmp 0x4e607a
inc esi
mov eax, 0x10
mov ecx, ebx
sub eax, esi
and ecx, 0xff
imul eax, ecx
mov ecx, edx
and ecx, 0xff
imul ecx, esi
add eax, ecx
shr eax, 4
jmp 0x4e607a
mov al, dl
mov byte [ebp], al
mov eax, dword [esp + 0x40]
dec eax
test eax, eax
mov dword [esp + 0x40], eax
jle 0x4e60e2
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x50]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x80]
add eax, esi
add ebp, ecx
cmp eax, edi
mov dword [esp + 0x80], eax
jl 0x4e5fe2
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov eax, 4
sub eax, esi
mov dword [esp + 0x18], eax
jne 0x4e60c5
inc ecx
mov eax, dword [esp + 0x80]
sub eax, edi
cmp eax, edi
mov dword [esp + 0x80], eax
jge 0x4e60b3
mov dword [esp + 0x1c], ecx
jmp 0x4e5fe2
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
add esi, edx
mov edx, dword [esp + 0x34]
add edi, ecx
mov ecx, dword [esp + 0x5c]
inc eax
dec edx
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
jl 0x4e5ec4
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x44]
jmp 0x4e612e
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
cmp edi, ebp
mov dword [esp + 0x64], edi
mov eax, dword [eax]
lea esi, [eax + 0x20]
jl 0x4e6143
mov dword [esp + 0x64], ebp
mov ecx, dword [esp + 0x38]
cmp ecx, ebp
jg 0x4e614d
mov ecx, ebp
mov edx, dword [ebx + 8]
cmp esi, edx
mov dword [esp + 0x7c], edx
jge 0x4e6464
mov edx, dword [ebx]
lea esi, [eax + 0x40]
cmp edx, esi
mov dword [esp + 0x80], edx
jge 0x4e6464
mov esi, dword [ebx + 0xc]
mov edx, dword [esp + 0x64]
cmp edx, esi
jge 0x4e6464
mov ebx, dword [ebx + 4]
cmp ebx, ecx
jge 0x4e6464
cmp ecx, esi
mov dword [esp + 0x34], ecx
jl 0x4e6196
mov dword [esp + 0x34], esi
mov edx, dword [esp + 0x7c]
lea ecx, [eax + 0x40]
cmp ecx, edx
jge 0x4e61a3
mov edx, ecx
mov ecx, dword [esp + 0x64]
cmp ecx, ebx
mov dword [esp + 0x20], ecx
jg 0x4e61b3
mov dword [esp + 0x20], ebx
mov esi, dword [esp + 0x80]
lea ecx, [eax + 0x20]
cmp ecx, esi
jg 0x4e61c3
mov ecx, esi
sub edx, eax
sub ecx, eax
sub edx, 0x20
sub ecx, 0x20
cmp ecx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x80], ecx
jge 0x4e6464
mov edx, ebp
mov eax, dword [esp + 0x38]
sub edx, edi
sub eax, ebp
mov dword [esp + 0x5c], edx
imul edx, ecx
mov dword [esp + 0x30], edx
mov edx, eax
neg edx
mov dword [esp + 0x58], edx
mov edx, 0x1f
sub edx, ecx
imul edx, eax
mov dword [esp + 0x2c], edx
jmp 0x4e6215
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x2c]
cdq
and edx, 0x1f
sar ecx, 5
add eax, edx
add ecx, edi
mov edi, eax
mov eax, dword [esp + 0x34]
sar edi, 5
add edi, ebp
mov ebx, edi
sub ebx, ecx
cmp ecx, eax
jge 0x4e642d
cmp edi, dword [esp + 0x20]
jle 0x4e642d
test ebx, ebx
jle 0x4e642d
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x80]
cdq
sub eax, edx
mov dword [esp + 0x1c], 0
sar eax, 1
shl eax, 1
mov edx, eax
mov eax, 0x1f
sub eax, edx
xor edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x84]
cmp byte [eax + 4], 4
mov esi, dword [eax + 8]
mov eax, dword [esp + 0x20]
sete dl
shl edx, 6
add edx, ebp
mov edx, dword [edx*4 + 0x74c6d8]
add edx, esi
cmp ecx, eax
mov dword [esp + 0x38], edx
jle 0x4e62bc
mov ebp, ecx
mov dword [esp + 0x7c], 0
jmp 0x4e62f4
mov esi, dword [esp + 0x20]
mov ebp, esi
sub esi, ecx
imul esi, dword [esp + 0x28]
mov eax, esi
cdq
idiv ebx
mov ecx, eax
mov eax, esi
cdq
idiv ebx
mov eax, ecx
sar eax, 1
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x38]
add edx, eax
test cl, 1
mov dword [esp + 0x38], edx
je 0x4e62f4
mov dword [esp + 0x1c], 4
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
imul ecx, ebp
mov eax, dword [esp + 0x80]
add ecx, edx
mov edx, dword [esp + 0x78]
add ecx, dword [edx]
lea ecx, [ecx + eax + 0x20]
mov eax, dword [esp + 0x34]
cmp edi, eax
mov dword [esp + 0x40], ecx
jl 0x4e6322
mov edi, eax
mov edx, dword [esp + 0x48]
sub edi, ebp
mov ebp, dword [esp + 0x38]
mov cl, byte [esp + 0x1c]
xor eax, eax
mov al, byte [ebp]
mov esi, eax
shr esi, cl
and esi, 0xf
cmp esi, 0xf
ja case.0x4e6345.15
jmp dword [esi*4 + 0x4e64b0]
mov al, dl
jmp 0x4e63de
mov al, byte [esp + 0x10]
mov cl, dl
shr al, 3
shr cl, 3
sub al, cl
add al, dl
jmp 0x4e63de
mov al, byte [esp + 0x10]
mov cl, dl
shr al, 2
shr cl, 2
sub al, cl
add al, dl
jmp 0x4e63de
mov al, byte [esp + 0x10]
mov cl, dl
shr al, 1
shr cl, 1
sub al, cl
add al, dl
jmp 0x4e63de
mov cl, byte [esp + 0x10]
mov al, dl
shr cl, 2
shr al, 2
sub al, cl
mov cl, byte [esp + 0x10]
add al, cl
jmp 0x4e63de
mov cl, byte [esp + 0x10]
mov al, dl
shr cl, 3
shr al, 3
sub al, cl
mov cl, byte [esp + 0x10]
add al, cl
jmp 0x4e63de
inc esi
mov eax, 0x10
mov ecx, edx
sub eax, esi
and ecx, 0xff
imul eax, ecx
mov ecx, dword [esp + 0x10]
and ecx, 0xff
imul ecx, esi
add eax, ecx
shr eax, 4
jmp 0x4e63de
mov al, byte [esp + 0x10]
mov ecx, dword [esp + 0x40]
dec edi
test edi, edi
mov byte [ecx], al
jle 0x4e642d
mov eax, dword [esp + 0x74]
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0x7c]
add ecx, esi
mov esi, dword [esp + 0x28]
add eax, esi
mov dword [esp + 0x40], ecx
cmp eax, ebx
mov dword [esp + 0x7c], eax
jl 0x4e632c
mov esi, dword [esp + 0x1c]
mov ecx, 4
sub ecx, esi
mov dword [esp + 0x1c], ecx
jne 0x4e641e
inc ebp
sub eax, ebx
cmp eax, ebx
jge 0x4e640c
mov dword [esp + 0x7c], eax
jmp 0x4e632c
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x80]
add esi, edx
mov edx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x54]
inc eax
mov dword [esp + 0x30], esi
cmp eax, ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x2c], edx
jl 0x4e620d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x14