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

Disassembly:
sub esp, 0xb4
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x44], 0xffffffff
push esi
push edi
xor edi, edi
mov dword [esp + 0x1c], ebp
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp]
mov dword [esp + 0x34], 1
mov dword [esp + 0x18], ebx
movzx eax, byte [ebx + 0x10]
mov dword [esp + 0x44], esi
lea ecx, [eax + eax*8]
mov eax, dword [esi + 4]
lea ecx, [ecx + 1]
lea edx, [eax + ecx*8]
mov eax, dword [ebp + 4]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 0x44]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5f7b8e
test byte [ecx + 0x24], 0x80
je 0x5f7aef
mov eax, dword [ecx + 8]
jmp 0x5f7b8a
xorps xmm0, xmm0
mov dword [esp + 0x58], edi
lea eax, [esp + 0x4c]
movlpd qword [esp + 0x8f], xmm0
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x60], eax
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x80], xmm0
movlpd qword [esp + 0x97], xmm0
mov byte [esp + 0x9f], 0
mov dword [esp + 0x8a], 0x10001
mov byte [esp + 0x8e], 5
mov dword [esp + 0x64], ecx
movzx eax, word [ecx + 0x30]
or dword [esp + 0x90], 3
mov word [esp + 0x88], ax
movzx eax, word [ecx + 0x2e]
mov word [esp + 0x48], ax
xor eax, eax
mov word [esp + 0x4a], ax
test byte [edx + 0x28], 1
jne 0x5f7b86
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x14], eax
movzx eax, word [ecx + 0x2e]
mov dword [esp + 0x38], eax
mov ecx, eax
cmp ax, 0xa
jg 0x5f7ba2
xor ebp, ebp
jmp 0x5f7bbb
movsx eax, cx
cdq
push edx
push eax
call fcn.0058d110
mov edx, dword [esp + 0x18]
add esp, 8
sub ax, 0x21
movzx ebp, ax
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x10], edi
jne 0x5f7d57
test byte [esi + 0x28], 0x20
jne 0x5f7d57
mov eax, dword [esi]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x8000
or eax, 0
je 0x5f7d57
cmp dword [edx + 0x44], edi
jne 0x5f7d57
mov eax, dword [edx + 0x28]
test al, 1
jne 0x5f7d57
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x24], 0x80
jne 0x5f7d57
test al, 0x28
jne 0x5f7d57
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x14]
lea ebx, [eax + eax*2]
shl ebx, 4
add ebx, esi
cmp esi, ebx
jae 0x5f7d4f
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
and ecx, dword [esi + 0x20]
and eax, dword [esi + 0x24]
or ecx, eax
jne 0x5f7d37
mov eax, dword [esi + 0x14]
cmp eax, dword [edx + 0x2c]
jne 0x5f7d37
movzx ecx, word [esi + 0xc]
test cl, 0x82
je 0x5f7d37
test byte [edx + 0x24], 8
je 0x5f7c72
mov eax, dword [esi]
test byte [eax + 4], 1
jne 0x5f7c72
test cl, cl
js 0x5f7d37
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x5f7d37
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + ecx*4 + 0xd]
mov ecx, dword [esi]
call fcn.005bb470
test eax, eax
je 0x5f7d33
mov edi, dword [esp + 0x18]
mov ecx, 1
mov eax, dword [edi + 0x30]
mov word [edi + 0x18], cx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x20], 0
mov dword [eax], esi
mov eax, dword [esp + 0x38]
add eax, ebp
mov word [edi + 0x12], ax
movzx ecx, ax
mov eax, dword [esp + 0x20]
cmp dword [eax + 0xc], 0
jne 0x5f7cd7
test byte [eax + 0x24], 2
mov eax, 0x1c
je 0x5f7cdc
mov eax, 0xfffffff6
add eax, ecx
movzx eax, ax
mov word [edi + 0x12], ax
test ax, ax
jns 0x5f7cf0
xor eax, eax
mov word [edi + 0x12], ax
mov eax, 0x2b
mov ecx, ebp
mov edx, eax
mov word [edi + 0x16], ax
call fcn.0058d0a0
mov word [edi + 0x14], ax
mov edx, edi
mov dword [edi + 0x24], 0x4000
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
or ecx, dword [esp + 0xc8]
or eax, dword [esp + 0xcc]
mov dword [edi], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edi + 4], eax
call fcn.005f6cd0
mov edi, eax
mov edx, dword [esp + 0x10]
add esi, 0x30
test edi, edi
je 0x5f7c23
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret
test edi, edi
jne 0x5f7d42
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
nop dword [eax + eax]
test ebp, ebp
je 0x5f7d42
movzx edx, byte [edx + 0x24]
mov eax, dword [ebp + 0x24]
mov esi, dword [esp + 0x10]
shr edx, 5
and edx, 1
test eax, eax
je 0x5f7d91
mov ecx, dword [esi + 0x2c]
push eax
push dword [esp + 0x30]
call fcn.005f79c0
add esp, 8
test eax, eax
je 0x5f8145
test dword [ebp + 0x38], 0x100
jne 0x5f8145
mov eax, dword [ebp + 8]
xor ecx, ecx
movzx eax, word [eax]
mov dword [ebx + 0x18], ecx
mov word [ebx + 0x1c], cx
mov dword [ebx + 0x28], ecx
mov byte [ebx + 0x11], cl
mov word [ebx + 0x12], cx
mov ecx, dword [esp + 0xc8]
mov dword [ebx], ecx
mov ecx, dword [esp + 0xcc]
mov dword [ebx + 4], ecx
mov word [ebx + 0x16], ax
mov dword [ebx + 0x20], ebp
test byte [ebp + 0x38], 4
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], ecx
jne 0x5f7ee7
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
test eax, eax
je 0x5f7ee7
cmp dword [eax], 0
mov dword [esp + 0x38], 0
jle 0x5f7ee7
mov edx, dword [esp + 0x24]
add eax, 4
mov dword [esp + 0x28], eax
mov esi, dword [eax]
test esi, esi
je 0x5f7e44
nop dword [eax]
mov eax, dword [esi + 4]
test eax, 0x41000
je 0x5f7e40
test eax, 0x40000
je 0x5f7e39
mov esi, dword [esi + 0x14]
mov esi, dword [esi + 4]
jmp 0x5f7e3c
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x5f7e20
mov eax, dword [esp + 0x28]
cmp byte [esi], 0xa4
jne 0x5f7e77
cmp dword [esi + 0x1c], ecx
jne 0x5f7e77
movzx edx, word [esi + 0x20]
test dx, dx
js 0x5f7ee0
movzx esi, word [ebp + 0x32]
xor ecx, ecx
test esi, esi
je 0x5f7ebf
mov eax, dword [ebp + 4]
cmp dx, word [eax]
je 0x5f7ee0
inc ecx
add eax, 2
cmp ecx, esi
jl 0x5f7e68
jmp 0x5f7ebb
mov ebx, dword [ebp + 0x28]
test ebx, ebx
je 0x5f7ec3
xor ecx, ecx
xor edi, edi
cmp cx, word [ebp + 0x32]
mov ecx, dword [esp + 0x40]
jae 0x5f7ec3
add ebx, 4
nop
mov eax, dword [ebp + 4]
cmp word [eax + edi*2], 0xfffe
jne 0x5f7eaf
mov edx, dword [ebx]
push ecx
mov ecx, esi
call fcn.005c2590
add esp, 4
test eax, eax
je 0x5f7ee0
mov ecx, dword [esp + 0x40]
movzx eax, word [ebp + 0x32]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x5f7e90
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
add eax, 0x14
inc ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], ecx
cmp ecx, dword [edx]
jge 0x5f7ee7
mov ecx, dword [esp + 0x40]
jmp 0x5f7e17
mov edx, 1
jmp 0x5f7ee9
xor edx, edx
mov ecx, dword [ebp + 0x38]
mov eax, ecx
and eax, 3
cmp al, 3
jne 0x5f7f3f
mov ebx, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x34]
test edx, edx
mov esi, dword [esp + 0x30]
mov edx, ebx
movzx eax, al
cmovne ecx, eax
mov dword [ebx + 0x24], 0x100
mov byte [ebx + 0x11], cl
mov ecx, dword [esp + 0x2c]
lea eax, [esi + 0x10]
push esi
mov word [ebx + 0x14], ax
call fcn.005f6f30
mov ecx, dword [esp + 0x20]
add esp, 4
mov edx, ebx
call fcn.005f6cd0
mov word [ebx + 0x16], si
jmp 0x5f810e
test cl, 0x20
je 0x5f7f5c
xorps xmm0, xmm0
mov eax, 0x240
movlpd qword [esp + 0x38], xmm0
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x5f7f7c
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 0x40]
mov edi, dword [ebp + 0x44]
and esi, dword [eax + 0x38]
and edi, dword [eax + 0x3c]
mov eax, esi
or eax, edi
mov eax, 0x240
je 0x5f7f7c
mov eax, 0x200
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x24], eax
test edx, edx
jne 0x5f7fe0
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x24], 0x80
jne 0x5f7fe0
cmp dword [ebp + 0x24], edx
jne 0x5f7fe0
mov eax, esi
or eax, edi
jne 0x5f8116
test byte [ebp + 0x38], 4
jne 0x5f8116
mov ax, word [ebp + 0x30]
cmp ax, word [ecx + 0x30]
jge 0x5f8116
mov eax, dword [esp + 0x44]
test byte [eax + 0x28], 4
jne 0x5f8116
cmp byte [0x851a6f], dl
je 0x5f8116
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x4c], 0x20
jne 0x5f8116
mov eax, dword [esp + 0x34]
xor ecx, ecx
movzx eax, al
test edx, edx
cmovne ecx, eax
mov byte [ebx + 0x11], cl
movsx ecx, word [ebp + 0x30]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x20]
cdq
movsx ecx, word [ecx + 0x30]
idiv ecx
mov ecx, dword [esp + 0x30]
inc eax
add eax, ecx
or esi, edi
mov word [ebx + 0x14], ax
je 0x5f80ec
lea eax, [ecx + 0x10]
xor ebx, ebx
mov ecx, dword [esp + 0x44]
movzx esi, ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x38], eax
cmp dword [ecx + 0x5c], ebx
jle 0x5f80d5
xor ebp, ebp
nop dword [eax]
mov edi, dword [ecx + 0x64]
xorps xmm0, xmm0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x50]
mov edx, dword [edi + ebp]
mov dword [esp + 0xa4], 0
movlpd qword [esp + 0xac], xmm0
movlpd qword [esp + 0xb4], xmm0
mov dword [esp + 0xa8], 0x5c2a60
mov dword [esp + 0xbc], eax
test edx, edx
je 0x5f809c
lea ecx, [esp + 0xa4]
call fcn.005b8990
mov ecx, dword [esp + 0x44]
cmp word [esp + 0xb8], 0
jne 0x5f80d1
movzx eax, word [edi + ebp + 8]
test ax, ax
jg 0x5f80b5
add esi, eax
jmp 0x5f80c0
dec esi
test byte [edi + ebp + 0xc], 0x82
je 0x5f80c0
sub esi, 0x13
mov eax, dword [esp + 0x38]
inc ebx
add ebp, 0x30
cmp ebx, dword [ecx + 0x5c]
jl 0x5f8040
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edx, esi
mov cx, word [ebx + 0x14]
call fcn.0058d0a0
mov ecx, dword [esp + 0x30]
mov word [ebx + 0x14], ax
push ecx
mov ecx, dword [esp + 0x30]
mov edx, ebx
call fcn.005f6f30
mov ecx, dword [esp + 0x20]
add esp, 4
mov edx, ebx
call fcn.005f6cd0
mov ecx, dword [esp + 0x30]
mov word [ebx + 0x16], cx
test eax, eax
jne 0x5f7d44
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
mov edx, dword [esp + 0x10]
push 0
push ebp
mov dword [ebx + 0x14], 0
call fcn.005f7220
add esp, 8
mov edi, eax
cmp dword [ebx + 0x14], 1
jne 0x5f8145
mov eax, dword [esp + 0x20]
or dword [eax + 0x24], 0x100
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x44], 0
je 0x5f8153
xor ebp, ebp
jmp 0x5f8156
mov ebp, dword [ebp + 0x14]
inc dword [esp + 0x34]
mov dword [esp + 0x14], ebp
test edi, edi
jne 0x5f7d42
mov ebx, dword [esp + 0x18]
jmp 0x5f7d60