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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [eax]
test dword [ebx + 0x18], 0x4000
movzx eax, byte [eax + 0x92]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x28], eax
je 0x4f652d
mov edx, dword [edi + 0x48]
mov eax, 0xfff0bdc0
mov dword [esp + 0x10], eax
test edx, edx
je 0x4f5f72
xor eax, eax
cmp dword [ebx + 0x14], eax
mov dword [esp + 0x10], eax
jle 0x4f5f72
mov ecx, dword [ebx + 0x10]
add ecx, 0xc
cmp dword [ecx], edx
je 0x4f5f6e
inc eax
add ecx, 0x10
cmp eax, dword [ebx + 0x14]
jl 0x4f5f61
mov dword [esp + 0x10], eax
mov ecx, dword [ebx + 0x10]
mov esi, dword [edi + 0x10]
shl eax, 4
mov edx, dword [eax + ecx]
mov dword [esp + 0x24], edx
test esi, esi
je 0x4f6267
jmp 0x4f5f94
mov ebx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
cmp dword [ebp + 0x18], eax
je 0x4f5fe1
mov ecx, dword [edi]
mov eax, dword [esi + 8]
test ecx, ecx
jne 0x4f5fb6
neg eax
sbb eax, eax
jmp 0x4f5fbf
test eax, eax
je 0x4f5fc3
call fcn.004b27e0
test eax, eax
je 0x4f5fe1
mov eax, dword [ebp + 0x1c]
push eax
push edi
mov edi, dword [ebp + 0x18]
mov eax, esi
call fcn.004f5e00
add esp, 8
test eax, eax
je 0x4f6259
mov ebx, dword [esp + 0xc]
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x92], 0
je 0x4f5ffe
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 8]
push edx
push eax
push ebx
call fcn.004ea0e0
jmp 0x4f6011
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 8]
mov edi, dword [ebp + 8]
push ecx
push edx
push 0
call fcn.004ea280
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4f61cf
mov edx, dword [ebp + 8]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
push esi
push edi
push edx
call fcn.004f4ae0
add esp, 0x14
test eax, eax
jne 0x4f61cf
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4f604c
mov dword [esp + 0x14], eax
jmp 0x4f605b
mov eax, dword [esi + 0x24]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
xor ebx, ebx
cmp dword [esi + 0x14], ebx
jle 0x4f60d8
mov eax, dword [esp + 0x14]
lea ebx, [ebx]
mov edx, dword [ebp + 0xc]
movsx edx, word [edx + 0x28]
cmp dword [eax + ebx*4], edx
jne 0x4f6083
mov dword [eax + ebx*4], 0xffffffff
mov edx, dword [esp + 0xc]
cmp dword [edx + 0x128], 0
je 0x4f60d2
test ecx, ecx
je 0x4f609d
mov eax, dword [ecx + 4]
movsx eax, word [eax + ebx*2]
jmp 0x4f60a1
movsx eax, word [edi + 0x28]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x10]
shl eax, 4
mov eax, dword [eax + ecx]
push edx
push eax
mov eax, dword [edi]
push eax
mov eax, dword [ebp + 8]
call fcn.004e9990
xor ecx, ecx
add esp, 0xc
cmp eax, 2
mov eax, dword [esp + 0x14]
sete cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
inc ebx
cmp ebx, dword [esi + 0x14]
jl 0x4f6070
mov edx, dword [edi]
mov eax, dword [edi + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
push edx
push 0
push eax
push ecx
mov eax, ebx
call fcn.004e9be0
mov eax, dword [ebp + 0x10]
inc dword [ebx + 0x28]
add esp, 0x10
test eax, eax
je 0x4f6120
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x14]
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x20]
push eax
push esi
push ecx
push edi
push edx
mov eax, ebx
call fcn.004f4d50
add esp, 0x20
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x4f6175
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x4f6130
mov eax, ebx
mov eax, dword [eax + 0x1cc]
test eax, eax
je 0x4f6152
mov eax, dword [eax]
cmp eax, dword [esi + 0x1c]
jne 0x4f6147
cmp byte [esi + 0x19], 7
je 0x4f6175
cmp eax, dword [esi + 0x20]
jne 0x4f6152
cmp byte [esi + 0x1a], 7
je 0x4f6175
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x14]
push 1
push ecx
mov ecx, dword [esp + 0x20]
push ecx
push esi
push edx
push edi
push eax
mov eax, ebx
call fcn.004f4d50
add esp, 0x20
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4f6259
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x1c8], 0
je 0x4f6198
call fcn.004afa70
jmp 0x4f6259
cmp eax, dword [ecx + 0x120]
jb 0x4f61c1
cmp eax, dword [ecx + 0x124]
jae 0x4f61c1
mov edx, dword [ecx + 0x11c]
mov dword [eax], edx
dec dword [ecx + 0x108]
mov dword [ecx + 0x11c], eax
jmp 0x4f6259
push eax
call fcn.004afa00
add esp, 4
jmp 0x4f6259
cmp dword [esp + 0x28], 0
je 0x4f652d
cmp byte [ebx + 0x45], 0
jne 0x4f652d
test edi, edi
jne 0x4f6259
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
test eax, eax
jne 0x4f61f7
call fcn.005024e0
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x88]
lea edx, [eax + ecx + 1]
xor edi, edi
mov dword [esp + 0x1c], edx
test ecx, ecx
jle 0x4f623e
lea ebx, [esi + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx]
mov edx, dword [ebp + 0x10]
push 0
push eax
lea eax, [ecx + edx + 1]
mov ecx, dword [esp + 0x28]
push eax
push 0x4b
push ecx
call fcn.004cd400
inc edi
add esp, 0x14
add ebx, 8
cmp edi, dword [esi + 0x14]
jl 0x4f6215
movzx edx, byte [esi + 0x18]
mov eax, dword [esp + 0x20]
push 0
push 0xffffffffffffffff
push edx
push 0x91
push eax
call fcn.004cd400
add esp, 0x14
mov esi, dword [esi + 4]
mov edi, dword [ebp + 0xc]
test esi, esi
jne 0x4f5f90
mov esi, dword [edi + 0x48]
mov ebx, dword [edi]
mov edi, dword [esi + 0x44]
add esi, 0x38
mov dword [esp + 0x2c], ebx
test edi, edi
je 0x4f62ad
mov cl, byte [ebx]
xor eax, eax
mov edx, ebx
test cl, cl
je 0x4f629f
movzx ecx, cl
movzx ecx, byte [ecx + 0x59cdd8]
add ecx, eax
imul ecx, ecx, 0x9e3779b1
inc edx
mov eax, ecx
mov cl, byte [edx]
test cl, cl
jne 0x4f6284
xor edx, edx
div dword [esi]
lea eax, [edi + edx*8]
mov edi, dword [eax + 4]
mov eax, dword [eax]
jmp 0x4f62b3
mov edi, dword [esi + 8]
mov eax, dword [esi + 4]
test eax, eax
je 0x4f631b
movzx edx, byte [ebx]
movzx ecx, byte [edx + 0x59cdd8]
mov dword [esp + 0x24], ecx
jmp 0x4f62cb
mov ebx, dword [esp + 0x2c]
mov ecx, dword [edi + 0xc]
mov dl, byte [ecx]
dec eax
mov dword [esp + 0x20], eax
movzx eax, dl
movzx eax, byte [eax + 0x59cdd8]
sub eax, dword [esp + 0x24]
jne 0x4f6311
mov esi, ebx
sub esi, ecx
test dl, dl
je 0x4f630d
movzx eax, byte [esi + ecx + 1]
movzx ebx, byte [eax + 0x59cdd8]
mov dl, byte [ecx + 1]
inc ecx
movzx eax, dl
movzx eax, byte [eax + 0x59cdd8]
sub eax, ebx
je 0x4f62e9
jmp 0x4f6311
test eax, eax
je 0x4f6320
mov eax, dword [esp + 0x20]
mov edi, dword [edi]
test eax, eax
jne 0x4f62c7
mov edi, 0x5f08b8
mov edi, dword [edi + 8]
test edi, edi
je 0x4f652d
jmp 0x4f6330
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ecx
cmp eax, ecx
je 0x4f635f
mov ecx, dword [ebp + 0x1c]
push ecx
push eax
push esi
mov eax, edi
call fcn.004f5e50
add esp, 0xc
test eax, eax
je 0x4f6522
cmp byte [edi + 0x18], 0
jne 0x4f6382
mov edx, dword [esp + 0xc]
test dword [edx + 0x18], 0x40000
jne 0x4f6382
cmp dword [ebx + 0x78], 0
jne 0x4f6382
cmp byte [ebx + 0x14], 0
je 0x4f6522
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
push edi
push esi
push ebx
call fcn.004f4ae0
add esp, 0x14
test eax, eax
je 0x4f63b9
cmp dword [esp + 0x28], 0
je 0x4f652d
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x45], 0
jne 0x4f652d
jmp 0x4f6522
mov eax, dword [esp + 0xc]
push 0
push 0x58
call fcn.004afe20
mov esi, eax
add esp, 8
test esi, esi
je 0x4f64d4
push 0x50
lea ebx, [esi + 8]
push 0
push ebx
mov dword [esi + 4], 1
mov dword [esi], 1
call fcn.0052e300
mov eax, dword [esp + 0x18]
add esp, 0xc
mov dword [esi + 0x38], 0xffffffff
cmp byte [eax + 0x45], 0
jne 0x4f64cb
mov eax, dword [esi]
lea ecx, [eax + eax*4]
shl ecx, 4
lea eax, [ecx + esi - 0x48]
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov edx, dword [edi]
mov dword [ebx + 0x10], edx
mov eax, dword [edi]
mov ecx, dword [eax]
mov dword [ebx + 8], ecx
mov eax, edx
mov ecx, 1
add dword [eax + 0x20], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x28]
mov dword [ebx + 0x30], edx
add dword [eax + 0x28], ecx
cmp dword [ebp + 0x14], 0
je 0x4f6463
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
push 0xffffffffffffffff
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push edi
push edx
push eax
push esi
push ecx
call fcn.004f55f0
add esp, 0x20
cmp dword [ebp + 0x10], 0
je 0x4f64c0
mov ecx, dword [ebp + 0x10]
xor edx, edx
cmp dword [ebp + 0x18], edx
push 1
setne dl
push ecx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [edx + edi + 0x19]
mov edx, dword [esp + 0x18]
push edx
mov edx, dword [ebp + 8]
push edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
push eax
push ecx
push esi
push edx
call fcn.004f55f0
add esp, 0x20
cmp byte [edi + 0x18], 0
jne 0x4f64c0
mov eax, dword [esp + 0x2c]
cmp eax, 9
je 0x4f64c0
cmp eax, 7
je 0x4f64c0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x78]
test eax, eax
jne 0x4f64bc
mov eax, ecx
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0xc]
mov dword [ebx + 8], 0
push esi
call fcn.004ef1b0
add esp, 4
cmp dword [esp + 0x10], 0
je 0x4f6522
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x1c8], 0
mov eax, dword [esp + 0x10]
je 0x4f64f3
call fcn.004afa70
jmp 0x4f6522
cmp eax, dword [ecx + 0x120]
jb 0x4f6519
cmp eax, dword [ecx + 0x124]
jae 0x4f6519
mov edx, dword [ecx + 0x11c]
mov dword [eax], edx
dec dword [ecx + 0x108]
mov dword [ecx + 0x11c], eax
jmp 0x4f6522
push eax
call fcn.004afa00
add esp, 4
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x4f6330
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret