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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x38], eax
test byte [eax + 0x21], 0x40
je 0x1004fed3
mov esi, edx
cmp byte [edx + 0x2b], 0
jne 0x1004fed3
mov edi, dword [esi + 0x3c]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
test edi, edi
je 0x1004fca7
lea ecx, [eax + 0xc]
xor ebx, ebx
dec ebx
inc ebx
lea edx, [ecx + 0x10]
cmp dword [ecx], edi
mov ecx, edx
jne 0x1004f8f8
mov ecx, dword [ebp - 0x24]
mov cl, byte [ecx + 0x9f]
mov byte [ebp - 0x2d], cl
mov ecx, dword [esi + 0x30]
test ecx, ecx
mov dword [ebp - 0x2c], esi
jne 0x1004fa8d
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov esi, dword [edi + 0x44]
test esi, esi
jne 0x1004fa32
lea eax, [edi + 0x40]
add edi, 0x3c
mov edi, dword [edi]
mov ecx, 0x101f2310
test edi, edi
je 0x1004f974
mov eax, dword [eax]
mov ebx, dword [eax + 0xc]
xor esi, esi
movzx edx, byte [ebx + esi]
mov ecx, dword [ebp - 0x20]
movzx ecx, byte [ecx + esi]
cmp dl, cl
jne 0x1004f95e
test edx, edx
je 0x1004fa2b
inc esi
jmp 0x1004f944
mov dl, byte [edx + 0x101af7e8]
cmp dl, byte [ecx + 0x101af7e8]
je 0x1004f95b
dec edi
jne 0x1004f93d
mov ecx, 0x101f2310
mov edi, dword [ecx + 8]
test edi, edi
je 0x1004fed3
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
cmp dword [ebp + 0x10], 0
mov ebx, dword [ebp + 0x14]
jne 0x1004fa70
jmp 0x1004fd66
test cx, cx
jle 0x1004fa0f
mov eax, dword [ebp - 0x28]
mov eax, dword [edi + eax*8 + 0x28]
mov dword [ebp - 0x20], eax
xor eax, eax
mov edx, dword [ebp + 0x10]
cmp dword [edx + eax*4], 0
jns 0x1004f9c9
test ebx, ebx
je 0x1004f9c2
mov edx, dword [ebp - 0x2c]
movsx edx, word [edx + 0x20]
cmp eax, edx
je 0x1004f9c9
inc eax
cmp eax, ecx
jne 0x1004f9aa
jmp 0x1004fa0f
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + 4]
cmp dword [ebp - 0x20], 0
je 0x1004fc92
mov esi, eax
shl esi, 4
mov edx, dword [edx + esi]
xor esi, esi
mov dword [ebp - 0x34], edx
movzx edx, byte [edx + esi]
mov ebx, dword [ebp - 0x20]
movzx ebx, byte [ebx + esi]
cmp dl, bl
je 0x1004fd59
mov dl, byte [edx + 0x101af7e8]
cmp dl, byte [ebx + 0x101af7e8]
mov ebx, dword [ebp + 0x14]
jne 0x1004f9c2
jmp 0x1004fd5d
mov esi, dword [ebp - 0x28]
inc esi
mov edx, dword [ebp - 0x3c]
mov eax, esi
mov dword [ebp - 0x28], esi
cmp esi, edx
jne 0x1004f999
mov edi, dword [edi + 0xc]
jmp 0x1004f977
mov ecx, eax
jmp 0x1004f974
mov eax, dword [ebp - 0x20]
mov bl, byte [eax]
test bl, bl
je 0x1004fc8b
lea edx, [eax + 1]
xor eax, eax
movzx ecx, bl
movzx ecx, byte [ecx + 0x101af7e8]
add ecx, eax
imul eax, ecx, 0x9e3779b1
mov bl, byte [edx]
inc edx
test bl, bl
jne 0x1004fa44
xor edx, edx
div dword [edi + 0x38]
lea edi, [esi + edx*8]
lea eax, [esi + edx*8]
add eax, 4
jmp 0x1004f932
mov edx, dword [edi + 0x14]
test edx, edx
jle 0x1004fa23
mov eax, dword [ebp - 0x2c]
movsx ecx, word [eax + 0x22]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], edx
jmp 0x1004f999
mov edx, ebx
shl edx, 4
mov dword [ebp - 0x4c], edx
mov eax, dword [eax + edx]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x20], ecx
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov esi, dword [ecx + 8]
cmp dword [ebp + 0x10], 0
je 0x1004fc3b
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
test edi, edi
je 0x1004ff4d
test esi, esi
je 0x1004faeb
xor edx, edx
movzx eax, byte [edi + edx]
movzx ecx, byte [esi + edx]
cmp al, cl
jne 0x1004fadd
test eax, eax
je 0x1004fc3b
inc edx
jmp 0x1004fac6
mov al, byte [eax + 0x101af7e8]
cmp al, byte [ecx + 0x101af7e8]
je 0x1004fada
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x1004fd4e
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + edx*8 + 0x24]
mov edi, dword [ebp + 0x10]
cmp dword [edi + eax*4], 0
mov edi, dword [ebp - 0x24]
js 0x1004ff5c
cmp byte [edi + 0x9f], 0
jne 0x1004fe31
mov ecx, edi
xor edx, edx
push dword [ebp - 0x44]
push esi
call fcn.10038860
add esp, 8
mov dword [ebp - 0x28], eax
test eax, eax
mov esi, dword [ebp - 0x2c]
je 0x1004fcb1
mov ecx, edi
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x20]
call fcn.100528f0
mov edx, dword [ebp - 0x28]
add esp, 0xc
test eax, eax
jne 0x1004fcb1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
test eax, eax
mov ecx, dword [ebp - 0x20]
jne 0x1004fb79
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], 0
cmp dword [ecx + 0x14], 0
jle 0x1004fbc1
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
lea eax, [edx + 0x20]
mov dword [ebp - 0x48], eax
xor edi, edi
mov dword [ebp - 0x3c], 0
movsx eax, word [esi + 0x20]
mov edx, dword [ebp - 0x34]
cmp dword [edx + edi*4], eax
je 0x1004fe46
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x164], 0
jne 0x1004fe55
inc edi
cmp edi, dword [ecx + 0x14]
jl 0x1004fb9b
cmp ebx, 1
mov edi, dword [ebp - 0x24]
je 0x1004fbdf
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x4c]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
jne 0x1004fe9a
inc dword [edi + 0x28]
cmp dword [ebp + 8], 0
mov eax, dword [ebp + 0xc]
jne 0x1004fc43
test eax, eax
je 0x1004fc24
mov eax, dword [edi + 0x78]
test eax, eax
cmove eax, edi
mov eax, dword [eax + 0x80]
test eax, eax
jne 0x1004fc6b
mov ecx, edi
mov edx, ebx
push dword [ebp - 0x3c]
push 1
push dword [ebp + 0xc]
push dword [ebp - 0x34]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
push dword [ebp - 0x28]
call fcn.1005dd70
mov ecx, dword [ebp - 0x20]
add esp, 0x1c
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x1004feb8
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x1004fc83
jmp 0x1004fa9b
mov edi, dword [ebp - 0x24]
jmp 0x1004fb12
mov ecx, edi
mov edx, ebx
push dword [ebp - 0x3c]
push 0xffffffffffffffff
push dword [ebp + 8]
push dword [ebp - 0x34]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
push dword [ebp - 0x28]
call fcn.1005dd70
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
add esp, 0x1c
jmp 0x1004fbeb
mov eax, dword [eax]
cmp eax, dword [ecx + 0x1c]
je 0x1004ff98
cmp eax, dword [ecx + 0x20]
jne 0x1004fc01
cmp byte [ecx + 0x1a], 8
jne 0x1004fc01
jmp 0x1004fc24
mov edi, dword [esi + 0x3c]
jmp 0x1004f91c
xor eax, eax
jmp 0x1004fa5d
mov esi, eax
shl esi, 4
test byte [edx + esi + 0xe], 1
je 0x1004f9c2
jmp 0x1004fd66
mov ebx, 0xffff8000
jmp 0x1004f902
cmp byte [ebp - 0x2d], 0
je 0x1004fed3
mov eax, dword [ebp - 0x38]
mov al, byte [eax + 0x57]
cmp dword [ebp - 0x28], 0
jne 0x1004fec5
test al, al
jne 0x1004fec5
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x1004ff7f
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x14]
test eax, eax
jle 0x1004fd32
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x6c]
add eax, ecx
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp - 0x3c], eax
xor edi, edi
mov esi, dword [ebp - 0x20]
movsx edx, word [esi + edi*8 + 0x24]
mov ecx, dword [esi]
call fcn.10157970
cwde
add eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
mov edx, 0x32
push 0
push dword [ebp - 0x34]
push eax
call fcn.1002fb80
add esp, 0xc
inc edi
cmp edi, dword [esi + 0x14]
jl 0x1004fd03
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax + 0x18]
mov ecx, dword [ebp - 0x28]
mov edx, 0x9e
push 0
push 0xffffffffffffffff
push eax
call fcn.1002fb80
add esp, 0xc
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x1004fc2f
test edx, edx
je 0x1004fd66
inc esi
mov edx, dword [ebp - 0x34]
jmp 0x1004f9e6
cmp byte [edi + 0x18], 0
jne 0x1004fd8b
mov eax, dword [ebp - 0x38]
test byte [eax + 0x22], 8
jne 0x1004fd8b
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x78], 0
jne 0x1004fd8b
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x14], 0
je 0x1004fa23
mov ebx, dword [ebp - 0x24]
mov ecx, ebx
mov esi, dword [ebp - 0x2c]
mov edx, esi
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push edi
call fcn.100528f0
add esp, 0xc
test eax, eax
jne 0x1004fee5
mov ecx, ebx
xor edx, edx
xor eax, eax
push eax
push eax
call fcn.100176b0
add esp, 8
test eax, eax
je 0x1004fe19
mov ebx, eax
mov eax, dword [edi]
mov dword [ebx + 0x18], eax
mov ecx, dword [edi]
mov ecx, dword [ecx]
mov dword [ebx + 0x10], ecx
inc dword [eax + 0x18]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x28]
lea edx, [eax + 1]
mov dword [ecx + 0x28], edx
mov dword [ebx + 0x34], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1004fdfe
mov edx, ebx
push 0xffffffffffffffff
push eax
push dword [ebp - 0x18]
push edi
push dword [ebp - 0x14]
push esi
call fcn.1005cbf0
add esp, 0x18
cmp dword [ebp + 8], 0
jne 0x1004fefa
mov dword [ebx + 0x10], 0
mov ecx, dword [ebp - 0x38]
mov edx, ebx
call fcn.100172a0
mov edx, dword [ebp - 0x18]
test edx, edx
je 0x1004fa23
mov ecx, dword [ebp - 0x38]
call fcn.1014d210
jmp 0x1004fa23
mov ecx, dword [ebp - 0x38]
mov edx, esi
push dword [ebp - 0x44]
call fcn.1014f930
add esp, 4
jmp 0x1004fb2f
mov eax, dword [ebp - 0x34]
mov dword [eax + edi*4], 0xffffffff
jmp 0x1004fbab
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x40], 0
je 0x1004fe67
lea eax, [edi + edi]
mov ecx, dword [ebp - 0x40]
add eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
mov esi, dword [ecx + 4]
movsx eax, word [eax]
shl eax, 4
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x24]
push ebx
push dword [esi + eax]
call fcn.10170ea0
add esp, 8
xor ecx, ecx
cmp eax, 2
sete cl
mov dword [ebp - 0x3c], ecx
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x1004fbbb
mov ecx, edi
mov edx, ebx
mov eax, dword [ebp - 0x28]
push dword [eax]
push 0
push dword [eax + 0x14]
call fcn.10046570
mov ecx, dword [ebp - 0x20]
add esp, 0xc
jmp 0x1004fbdf
mov ecx, dword [ebp - 0x38]
call fcn.1014d210
jmp 0x1004fd51
test al, al
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
je 0x1004fc2f
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [ebp - 0x2d], 0
je 0x1004fed3
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0x57], 0
je 0x1004fa23
jmp 0x1004fed3
cmp dword [ebp + 0x10], 1
mov eax, edi
sbb eax, 0xffffffff
movzx esi, byte [eax + 0x19]
mov ecx, dword [ebp - 0x24]
mov edx, ebx
push 1
push dword [ebp + 8]
push dword [ebp - 0x18]
push edi
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
call fcn.1005cbf0
add esp, 0x18
cmp byte [edi + 0x18], 0
jne 0x1004fe08
or esi, 2
cmp esi, 0xa
je 0x1004fe08
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x78]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
jmp 0x1004fe08
test esi, esi
jne 0x1004faeb
xor esi, esi
jmp 0x1004fc3b
cmp dword [ebp + 0x14], 0
je 0x1004ff71
mov edi, dword [ebp - 0x2c]
movsx edi, word [edi + 0x20]
cmp eax, edi
je 0x1004fc3b
inc edx
cmp ecx, edx
jne 0x1004fafb
jmp 0x1004fd4e
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x78], 0
je 0x1004ffa7
mov ecx, dword [ebp - 0x24]
call fcn.1002f500
mov dword [ebp - 0x28], eax
jmp 0x1004fce4
cmp byte [ecx + 0x19], 8
je 0x1004fc24
jmp 0x1004fc76
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
test byte [eax + 0x50], 8
jne 0x1004ff88
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x17], 1
jmp 0x1004ff88