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

Disassembly:
sub esp, 0x44
mov eax, dword [esp + 0x50]
push ebx
mov ebx, dword [esp + 0x4c]
push ebp
push esi
xor esi, esi
push edi
mov edi, dword [esp + 0x5c]
cmp edi, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], esi
jl 0x4f93bd
cmp eax, esi
je 0x4f92e5
mov ebp, eax
mov dword [esp + 0x38], ebp
jmp 0x4f92f5
push edi
push ebx
call fcn.004f8b90
add esp, 8
mov ebp, eax
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x138]
mov eax, dword [eax + edi*4]
test byte [eax + 0x3c], 0x20
je 0x4f930d
mov ecx, dword [eax + 0x48]
mov dword [esp + 0x20], ecx
jmp 0x4f9311
mov dword [esp + 0x20], esi
push 0x400
push edi
push ebx
call fcn.004e08a0
add esp, 0xc
test eax, eax
je 0x4f9339
mov edx, dword [ebx + 0x138]
mov eax, dword [edx + edi*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x30], edx
jmp 0x4f9341
mov dword [esp + 0x30], 0xffffffff
cmp dword [ebx + 0x3a58], esi
je 0x4f934f
mov dword [esp + 0x6c], esi
jmp 0x4f935d
push edi
push ebx
call fcn.004f7b10
add esp, 8
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0x138]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax + 0xc]
cmp ecx, esi
mov dword [esp + 0x68], ecx
jle 0x4f9386
test byte [eax + 0x38], 1
je 0x4f9384
cmp dword [ebx + 0x9998], esi
jne 0x4f9384
mov word [ebp + ecx*2 - 2], si
cmp ecx, esi
je 0x4f9883
mov esi, edi
push esi
mov edi, ebx
push edi
call fcn.004ad140
mov ecx, dword [edi + 0x138]
mov dword [esp + 0x7c], eax
mov eax, dword [ecx + esi*4]
mov edx, dword [eax]
mov eax, dword [eax + 0x3c]
and eax, 0x100
add esp, 8
mov dword [esp + 0x70], edx
mov dword [esp + 0x48], eax
xor esi, esi
jmp 0x4f93d5
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x48], 1
cmp esi, dword [esp + 0x68]
jg 0x4f96ec
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x5c]
jge 0x4f9513
mov ecx, dword [esp + 0x70]
mov dl, byte [esi + ecx]
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov eax, dword [esp + 0x74]
movzx eax, word [eax + esi*2]
je 0x4f9414
movzx ecx, word [ecx + esi*2]
and ecx, 0x8000
mov dword [esp + 0x18], ecx
jmp 0x4f941c
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x58]
imul eax, eax, 0x170
cmp dl, 0x20
mov ecx, dword [ecx + 0x3434]
mov edi, dword [eax + ecx + 0x168]
lea ebp, [eax + ecx]
mov dword [esp + 0x28], edi
jne 0x4f9496
cmp dword [esp + 0x48], 0
je 0x4f9496
cmp dword [esp + 0x24], 0
je 0x4f945b
mov edi, dword [esp + 0x34]
mov dword [esp + 0x18], 1
jmp 0x4f9492
lea eax, [esi + 1]
cmp eax, dword [esp + 0x68]
jge 0x4f9496
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4f9496
movzx eax, word [eax + esi*2 + 2]
and eax, 0x8000
je 0x4f9496
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
movzx eax, word [eax + esi*2 + 2]
imul eax, eax, 0x170
mov edi, dword [eax + ecx + 0x168]
mov dword [esp + 0x28], edi
mov eax, dword [ebp + 0x134]
and eax, 0x9c00
test edi, edi
mov dword [esp + 0x3c], eax
je 0x4f94d0
cmp dword [esp + 0x18], 0
jne 0x4f94d0
mov eax, dword [ebp + 0x144]
cmp eax, 8
je 0x4f94c8
cmp eax, 0xa
mov dword [esp + 0x18], 0
jne 0x4f94d0
mov dword [esp + 0x18], 1
mov al, dl
sub al, 0x30
mov cl, 9
cmp cl, al
sbb ebx, ebx
add ebx, 1
cmp al, cl
mov edi, 1
jbe 0x4f9511
mov al, dl
sub al, 0x61
cmp al, 0x19
jbe 0x4f9511
mov cl, dl
sub cl, 0x41
cmp cl, 0x19
jbe 0x4f9511
cmp word [ebp + 0x160], 0
ja 0x4f9511
cmp dl, 0x20
je 0x4f9511
cmp dl, 9
je 0x4f9511
cmp dl, 0x3a
jne 0x4f9513
xor edi, edi
xor edx, edx
cmp esi, edx
jne 0x4f9546
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], ecx
jmp 0x4f96cb
cmp esi, dword [esp + 0x68]
je 0x4f95a5
cmp dword [esp + 0x20], edx
je 0x4f955c
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x18], eax
jne 0x4f95a5
cmp esi, dword [esp + 0x30]
je 0x4f95a5
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x4c], ecx
jne 0x4f95a5
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x28], eax
jne 0x4f95a5
cmp edi, dword [esp + 0x40]
jne 0x4f95a5
cmp ebx, dword [esp + 0x44]
jne 0x4f95a5
mov ecx, dword [esp + 0x70]
mov al, byte [esi + ecx]
cmp al, 0x20
jae 0x4f9591
cmp al, 0x18
jne 0x4f95a5
mov al, byte [esi + ecx - 1]
cmp al, 0x20
jae 0x4f96d3
cmp al, 0x18
je 0x4f96d3
cmp dword [esp + 0x10], edx
jne 0x4f95b7
push 0x30
call fcn.004e2930
add esp, 4
jmp 0x4f95d0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea ecx, [eax + eax*2 + 3]
shl ecx, 4
push ecx
push edx
call fcn.004e2960
add esp, 8
mov ebp, dword [esp + 0x50]
cmp ebp, dword [esp + 0x30]
mov dword [esp + 0x14], eax
jne 0x4f9630
mov eax, dword [esp + 0x58]
cmp dword [eax + 0x3a58], 0
je 0x4f9604
mov eax, dword [eax + 0x138]
mov ecx, dword [esp + 0x5c]
mov edx, dword [eax + ecx*4]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 0x78]
add dword [esp + 0x1c], ecx
jmp 0x4f9630
mov edx, dword [eax + 0x510]
mov ecx, dword [eax + 0x500]
push edx
mov edx, dword [eax + 0x138]
mov eax, dword [esp + 0x60]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
lea edx, [ecx + ecx*2]
shl edx, 4
add eax, edx
mov edx, esi
sub edx, ebp
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0xc], edx
xor edx, edx
cmp dword [esp + 0x24], edx
mov dword [eax], ebp
setne dl
mov dword [eax + 0x10], edx
xor edx, edx
cmp dword [esp + 0x34], edx
setne dl
mov dword [eax + 0x14], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x40]
mov dword [eax + 0x1c], edx
mov edx, dword [esp + 0x70]
cmp byte [edx + ebp], 0x20
jae 0x4f9692
test ecx, ecx
jle 0x4f9692
mov dword [eax + 0x10], 1
add ecx, 1
cmp esi, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
je 0x4f96ec
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0x38]
movzx edx, word [ecx + esi*2]
add dword [esp + 0x2c], edx
add esi, 1
cmp esi, dword [esp + 0x68]
jle 0x4f93e7
mov esi, dword [esp + 0x10]
test esi, esi
mov edi, 1
mov dword [esp + 0x50], edi
jle 0x4f979a
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x70]
add ecx, 0x1c
mov ebx, esi
mov edi, edi
cmp dword [ecx - 0x18], 1
jne 0x4f975d
cmp dword [ecx], 0
mov eax, dword [ecx - 0x1c]
mov al, byte [edx + eax]
je 0x4f9727
mov ebp, dword [ecx - 8]
mov dword [ecx - 0xc], ebp
cmp al, 0x20
je 0x4f976f
cmp al, 0x2e
je 0x4f976f
cmp al, 0x22
je 0x4f976f
cmp al, 0x28
je 0x4f976f
cmp al, 0x29
je 0x4f976f
cmp al, 0x5b
je 0x4f976f
cmp al, 0x5d
je 0x4f976f
cmp al, 0x7b
je 0x4f976f
cmp al, 0x7d
je 0x4f976f
cmp al, 0x20
jb 0x4f976f
cmp al, 0x80
jbe 0x4f975d
movzx eax, al
cmp eax, 0x100
jl 0x4f976f
cmp dword [ecx - 0xc], 0
je 0x4f976d
mov dword [esp + 0x50], 0
jmp 0x4f976f
xor edi, edi
add ecx, 0x30
sub ebx, 1
jne 0x4f9710
cmp dword [esp + 0x50], ebx
je 0x4f9783
test edi, edi
je 0x4f9787
jmp 0x4f979a
test edi, edi
je 0x4f979a
mov eax, dword [esp + 0x14]
add eax, 0x10
mov ecx, esi
mov dword [eax], edi
add eax, 0x30
sub ecx, 1
jne 0x4f9790
cmp esi, 1
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x34], 1
jle 0x4f982d
mov edi, dword [esp + 0x14]
mov ebx, 2
add edi, 0x30
jmp 0x4f97c0
mov ecx, dword [edi + 0x10]
cmp ecx, dword [edi - 0x20]
jne 0x4f9818
mov eax, dword [edi + 0x14]
cmp eax, dword [edi - 0x1c]
jne 0x4f9818
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0xc]
add dword [edi - 0x2c], ecx
add dword [edi - 0x24], edx
cmp ebx, esi
jge 0x4f97fe
mov ebp, ebx
mov eax, edi
push 0x30
lea esi, [eax + 0x30]
push eax
push esi
call fcn.004e29c0
add ebp, 1
add esp, 0xc
cmp ebp, dword [esp + 0x10]
mov eax, esi
jl 0x4f97e4
mov edx, dword [esp + 0x5c]
mov eax, 1
sub dword [esp + 0x10], eax
sub dword [esp + 0x34], eax
mov esi, dword [esp + 0x10]
sub ebx, eax
sub edi, 0x30
mov eax, dword [esp + 0x34]
add eax, 1
add ebx, 1
add edi, 0x30
cmp eax, esi
mov dword [esp + 0x34], eax
jl 0x4f97c0
mov ebx, dword [esp + 0x58]
xor ecx, ecx
test esi, esi
jle 0x4f9875
mov edi, dword [esp + 0x14]
lea eax, [edi + 0x24]
mov edi, edi
test edx, edx
mov dword [eax - 4], edi
mov dword [eax], ecx
mov dword [eax + 8], esi
jl 0x4f9864
mov ebp, dword [ebx + 0x138]
mov ebp, dword [ebp + edx*4]
mov ebp, dword [ebp + 0x3c]
and ebp, 0x100
mov dword [eax + 4], ebp
jmp 0x4f986b
mov dword [eax + 4], 1
add ecx, 1
add eax, 0x30
cmp ecx, esi
jl 0x4f9840
test edx, edx
jl 0x4f9883
push edx
push ebx
call fcn.004ad1d0
add esp, 8
cmp dword [esp + 0x60], 0
pop edi
pop esi
pop ebp
pop ebx
jne 0x4f989b
mov eax, dword [esp + 0x28]
push eax
call fcn.004e2910
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4f98a8
mov ecx, dword [esp]
mov dword [eax], ecx
mov eax, dword [esp + 4]
add esp, 0x44
ret