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

Disassembly:
mov eax, 0x3888
call fcn.004727c0
mov eax, dword [0x61c948]
xor eax, esp
mov dword [esp + 0x3884], eax
mov eax, dword [esp + 0x3894]
mov ecx, dword [esp + 0x3898]
push ebp
mov ebp, dword [esp + 0x3894]
push esi
push edi
mov edi, dword [esp + 0x3898]
mov dx, word [edi + 8]
shr dx, 3
mov dword [esp + 0x5c], eax
movzx eax, dx
mov dword [esp + 0x24], eax
movzx eax, word [ebp + 0x28c6]
xor esi, esi
cmp ax, si
mov dword [esp + 0x50], ebp
mov dword [esp + 0x64], ecx
mov dword [esp + 0x44], eax
jne 0x4ffcfe
pop edi
pop esi
xor al, al
pop ebp
mov ecx, dword [esp + 0x3884]
xor ecx, esp
call fcn.004721e8
add esp, 0x3888
ret
mov cl, byte [ebp + 0x28c8]
test cl, cl
jne 0x4ffd22
pop edi
pop esi
mov al, 0xa
pop ebp
mov ecx, dword [esp + 0x3884]
xor ecx, esp
call fcn.004721e8
add esp, 0x3888
ret
movzx cx, cl
cmp ax, cx
jb 0x4ffd08
movzx ax, byte [ebp + 2]
cmp ax, 1
push ebx
mov word [esp + 0x3884], si
jbe 0x4ffd6e
lea esi, [eax - 1]
lea ecx, [esp + 0x3886]
lea edx, [ebp + 5]
movzx esi, si
nop
movzx bx, byte [edx]
imul bx, word [esp + 0x28]
add bx, word [ecx - 2]
add edx, 1
mov word [ecx], bx
add ecx, 2
sub esi, 1
jne 0x4ffd50
xor esi, esi
cmp byte [edi + 5], 0
mov dword [esp + 0x70], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x4ffd8d
mov edx, 0x5ca880
mov cl, 0x16
jmp 0x4ffd94
mov edx, 0x5ca878
mov cl, 6
movzx cx, cl
cmp cx, si
jbe 0x500426
mov dword [esp + 0x20], edx
movzx edx, cx
mov dword [esp + 0x28], edx
lea esp, [esp]
cmp byte [ebp], 0
mov ecx, dword [esp + 0x20]
mov dl, byte [ecx]
mov byte [esp + 0x7c], dl
mov byte [esp + 0x11], 0
jbe 0x500210
lea esp, [esp]
movzx ecx, byte [esp + 0x11]
movzx edx, word [ebp + ecx*2 + 0x792]
mov dword [esp + 0x44], ecx
movzx ecx, word [ebp + ecx*2 + 0x790]
sub edx, ecx
test edx, edx
mov byte [esp + 0x12], 0
jle 0x5001fc
mov dword [esp + 0x3c], 0
test ax, ax
mov dword [esp + 0x40], 0
jbe 0x5001c8
movzx eax, word [esp + 0x40]
cmp byte [eax + ebp + 0x1e78], 0
lea ecx, [eax + ebp + 0x1e78]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x58], ecx
jbe 0x5001af
movzx dx, byte [esp + 0x11]
mov ecx, eax
shl ecx, 4
sub ecx, eax
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov word [esp + 0x3a], dx
mov dword [esp + 0x64], ecx
jmp 0x4ffe60
movzx ecx, word [esp + 0x2c]
mov eax, dword [esp + 0x64]
mov dx, word [esp + 0x3a]
add eax, ecx
cmp word [ebp + eax*2 + 0xbb8], dx
ja 0x500193
cmp word [ebp + eax*2 + 0x1338], dx
jbe 0x500193
movzx edi, word [esp + 0x40]
lea eax, [edi + 0x11]
mov edx, eax
shl edx, 4
sub edx, eax
lea eax, [ebp + edx*8]
mov bl, byte [eax + ecx]
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x18], bl
mov ecx, dword [esp + 0x18]
push ecx
push edx
call fcn.004ffb40
add esp, 8
test al, al
je 0x500193
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
add eax, ecx
mov dx, word [ebp + eax*2 + 0x12]
sub dx, word [ebp + eax*2 + 0x10]
mov dword [esp + 0x78], eax
movzx eax, dx
mov dword [esp + 0x50], eax
movzx eax, byte [edi + ebp + 5]
cmp bl, 5
setb cl
add eax, eax
add eax, eax
cdq
lea ecx, [ecx + ecx + 2]
movzx esi, cl
idiv esi
movzx edx, bl
mov byte [esp + 0x27], cl
movzx esi, ax
mov al, byte [edx + 0x5ca898]
mov dl, byte [ebp + 0x28c8]
cmp al, dl
mov dword [esp + 0x74], esi
mov byte [esp + 0x4c], al
jb 0x4fff1e
mov byte [esp + 0x4c], dl
test si, si
mov dword [esp + 0x14], 0
jbe 0x500193
mov ebx, dword [esp + 0x14]
movzx eax, si
imul eax, dword [esp + 0x3c]
mov dword [esp + 0x80], eax
movzx eax, word [esp + 0x50]
mov dword [esp + 0x50], eax
jmp 0x4fff54
mov cl, byte [esp + 0x27]
movzx edx, bx
add edx, dword [esp + 0x80]
cmp edx, dword [esp + 0x50]
jge 0x500193
movzx dx, byte [esp + 0x12]
imul dx, si
movzx ax, cl
mov ecx, dword [esp + 0x78]
add dx, bx
imul dx, ax
movzx eax, word [esp + 0x40]
add dx, word [esp + eax*2 + 0x3884]
add dx, word [ebp + ecx*2 + 0x10]
cmp word [esp + 0x70], 0
movzx edi, dx
mov dword [esp + 0x5c], edi
jne 0x50015f
mov ax, word [esp + 0x34]
movzx edx, byte [esp + 0x4c]
movzx ecx, ax
add edx, ecx
movzx ecx, word [esp + 0x48]
cmp edx, ecx
jg 0x50001e
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
movzx eax, bx
lea esi, [eax + eax*2]
mov eax, dword [esp + 0x4c]
push edx
push eax
lea esi, [esp + esi*4 + 0x208c]
push esi
call fcn.004ffb90
movzx cx, byte [esp + 0x58]
mov eax, dword [esp + 0x74]
add word [esp + 0x40], cx
movzx edx, di
lea ecx, [eax + edx*2]
mov edx, dword [esp + 0x24]
push ecx
push esi
push edx
call fcn.004fd5a0
add esp, 0x18
mov ecx, esi
call fcn.004ffa90
mov esi, dword [esp + 0x74]
add ebx, 1
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x14]
jmp 0x50017e
cmp ax, word [esp + 0x48]
jae 0x500144
mov al, byte [esp + 0x48]
sub al, byte [esp + 0x34]
movzx edi, word [esp + 0x1c]
mov byte [esp + 0x6c], al
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x6c]
lea edi, [edi + edi*2]
add edi, edi
push eax
add edi, edi
push ecx
lea ebp, [esp + edi + 0x208c]
push ebp
call fcn.004ffb90
mov dl, byte [esp + edi + 0x208c]
add byte [esp + edi + 0x2098], dl
lea ebx, [esp + edi + 0x2098]
add esp, 0xc
mov ecx, ebp
call fcn.004ffa90
mov al, byte [ebx - 0xc]
cmp al, 0x20
mov byte [esp + 0x13], al
lea esi, [ebp - 0xc]
mov cl, al
jle 0x50010e
sub cl, 0x20
lea edi, [esp + edi + 0x2088]
call fcn.004fcca0
add eax, dword [edi]
mov dword [edi - 0xc], eax
mov al, byte [esi + 8]
cmp al, 0x20
jg 0x5000cf
jl 0x5000bb
movzx ecx, al
mov eax, dword [esi]
sub ecx, 0x20
shr eax, cl
mov ecx, dword [ebp]
add ecx, eax
mov dword [esi], ecx
jmp 0x500129
mov ecx, 0x20
sub ecx, eax
mov eax, dword [esi]
shl eax, cl
mov ecx, dword [ebp]
add ecx, eax
mov dword [esi], ecx
jmp 0x500129
movsx edx, al
lea eax, [edx - 0x20]
cmp eax, 0x20
jge 0x5000fd
or eax, 0xffffffff
mov ecx, 0x40
sub ecx, edx
shr eax, cl
and eax, dword [esi + 4]
shl eax, cl
lea ecx, [edx - 0x20]
mov edx, dword [esi]
shr edx, cl
mov ecx, dword [ebp]
or eax, edx
add ecx, eax
mov dword [esi], ecx
jmp 0x500129
mov eax, dword [esi + 4]
lea ecx, [edx - 0x40]
shr eax, cl
mov ecx, dword [ebp]
add ecx, eax
mov dword [esi], ecx
jmp 0x500129
call fcn.004fcca0
add eax, dword [ebp]
mov edx, dword [esp + edi + 0x2088]
mov dword [esi], eax
lea eax, [esp + edi + 0x2088]
mov dword [eax - 0xc], edx
mov al, byte [esp + 0x13]
add al, byte [esp + 0x6c]
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x74]
mov byte [ebx - 0xc], al
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
movzx eax, word [esp + 0x48]
push ecx
push edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x78], 1
push 0
jmp 0x50016e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x1c]
push eax
push edi
push ecx
lea edx, [esp + 0x90]
push edx
call fcn.004ffc50
add esp, 0x10
add dword [esp + 0x30], 1
add ebx, 1
cmp bx, si
mov dword [esp + 0x14], ebx
jb 0x4fff50
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x2c]
movzx dx, byte [ecx]
add eax, 1
cmp ax, dx
mov dword [esp + 0x2c], eax
jb 0x4ffe60
mov ecx, dword [esp + 0x40]
movzx ax, byte [ebp + 2]
add ecx, 1
cmp cx, ax
mov dword [esp + 0x40], ecx
jb 0x4ffe11
mov cl, byte [esp + 0x12]
mov edx, dword [esp + 0x44]
movzx esi, word [ebp + edx*2 + 0x792]
movzx edx, word [ebp + edx*2 + 0x790]
add cl, 1
mov byte [esp + 0x12], cl
movzx ecx, cl
mov dword [esp + 0x3c], ecx
add ecx, ecx
sub esi, edx
add ecx, ecx
cmp ecx, esi
jl 0x4ffe00
mov cl, byte [esp + 0x11]
add cl, 1
cmp cl, byte [ebp]
mov byte [esp + 0x11], cl
jb 0x4ffdd0
mov ecx, 1
add dword [esp + 0x20], ecx
sub dword [esp + 0x28], ecx
jne 0x4ffdb0
mov esi, dword [esp + 0x1c]
test si, si
je 0x500426
movzx eax, word [esp + 0x30]
movzx edi, si
cdq
idiv edi
mov ebp, ecx
mov dword [esp + 0x28], edi
movzx eax, ax
cmp ax, bp
jb 0x5003c4
movzx edx, ax
mov dword [esp + 0x18], 0
mov dword [esp + 0x3c], edx
lea esp, [esp]
test si, si
jbe 0x5003b6
movzx eax, word [esp + 0x30]
sub eax, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x44], edi
movzx eax, word [esp + 0x18]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], eax
movzx eax, word [esp + 0x20]
add eax, dword [esp + 0x14]
movzx esi, word [esp + 0x2c]
cdq
idiv edi
cmp esi, dword [esp + 0x58]
movzx eax, dx
jge 0x500388
shl esi, 4
cmp byte [esp + esi + 0x85], 0
lea ecx, [esp + esi + 0x85]
mov dword [esp + 0x5c], ecx
jne 0x500369
movzx eax, ax
lea ebp, [eax + eax*2]
add ebp, ebp
add ebp, ebp
cmp byte [esp + ebp + 0x208c], 0
jle 0x500369
cmp byte [esp + esi + 0x90], 0
lea eax, [esp + esi + 0x90]
mov dword [esp + 0x54], eax
je 0x50030f
lea ecx, [esp + esi + 0x88]
push ecx
lea edi, [esp + ebp + 0x2088]
call fcn.004ffab0
add esp, 4
movzx edx, word [esp + esi + 0x86]
mov eax, dword [esp + 0x68]
mov bl, byte [esp + ebp + 0x208c]
lea ecx, [eax + edx*2]
movzx edx, byte [esp + esi + 0x84]
push ecx
lea edi, [esp + ebp + 0x2088]
push edi
push edx
call fcn.004fd5a0
add esp, 0xc
test al, al
jl 0x50034c
mov eax, dword [esp + 0x5c]
mov byte [eax], 1
jmp 0x500369
mov ecx, dword [edi]
mov edx, dword [edi + 4]
lea eax, [esp + esi + 0x88]
mov dword [eax], ecx
mov ecx, dword [edi + 8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov byte [edx], bl
mov eax, dword [esp + 0x20]
add dword [esp + 0x2c], 1
mov edi, dword [esp + 0x28]
add eax, 1
cmp ax, word [esp + 0x1c]
mov dword [esp + 0x20], eax
jb 0x500291
mov ebp, 1
add dword [esp + 0x14], ebp
sub dword [esp + 0x44], ebp
jne 0x500280
lea esi, [esp + 0x2084]
mov ebx, edi
mov ecx, esi
call fcn.004ffa90
add esi, 0xc
sub ebx, ebp
jne 0x5003a4
mov esi, dword [esp + 0x1c]
add dword [esp + 0x18], esi
sub dword [esp + 0x3c], ebp
jne 0x500260
xor ecx, ecx
xor eax, eax
test si, si
jbe 0x5003f3
lea ecx, [ecx]
test cx, cx
jne 0x500426
movzx ecx, ax
lea ecx, [ecx + ecx*2]
movsx dx, byte [esp + ecx*4 + 0x208c]
add eax, ebp
cmp ax, si
movzx ecx, dx
jb 0x5003d0
test cx, cx
jne 0x500426
movzx ecx, word [esp + 0x30]
sub ecx, edi
xor edx, edx
xor eax, eax
test ecx, ecx
jle 0x50042a
test dx, dx
jne 0x500426
movzx esi, ax
shl esi, 4
cmp byte [esp + esi + 0x85], dl
jne 0x500418
mov edx, ebp
add eax, ebp
movzx esi, ax
cmp esi, ecx
jl 0x500402
test dx, dx
je 0x50042a
mov al, 0xa
jmp 0x50042c
xor al, al
mov ecx, dword [esp + 0x3894]
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.004721e8
add esp, 0x3888
ret