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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x138
mov esi, dword [esp + 0x18c]
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x28], 0
mov eax, dword [edi + 4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, 0x4000
cmp dword [esp + 0x154], 1
jne 0x58053f
push edi
call fcn.0055ed90
add esp, 4
mov dword [esp + 0x18], eax
test esi, esi
je 0x58055e
mov eax, dword [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x914]
test eax, eax
jne 0x5805e3
jmp 0x580570
mov dword [esp + 0x20], 0
mov eax, dword [edi + 0x914]
test eax, eax
jne 0x5805e3
cmp dword [esp + 0x158], 0
je 0x5805cb
xor eax, eax
cmp dword [esp + 0x154], 0
sete bl
setne al
mov ecx, dword [edi + eax*4 + 0x91c]
mov dword [esp + 4], ecx
test ecx, ecx
jne 0x5805f7
call fcn.0060c3a0
push 0xf00b8b
push 0x4f9
push 0xf00b3c
call fcn.0060c4a0
add esp, 0xc
push 0
push 0xc0103
push 0x14
call fcn.0060c590
add esp, 0xc
jmp 0x580ce1
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
test byte [eax + 0x28], 8
jne 0x5805de
mov eax, dword [0xff040c]
jmp 0x5805e3
mov eax, dword [0xff03d8]
mov dword [esp + 4], eax
xor eax, eax
cmp dword [esp + 0x154], 0
sete bl
setne al
lea ecx, [edi + eax*4]
add ecx, 0x91c
mov dword [esp + 8], ecx
lea ecx, [eax*4 + 0x924]
mov dword [esp + 0x1c], ecx
lea eax, [eax*4 + 0x24]
mov eax, dword [edi + eax]
mov dword [esp + 0x54], eax
lea eax, [edi + 0x788]
lea esi, [esp + 0x5c]
push eax
push 0xf00ba4
push esi
call fcn.00637230
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xe4], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [esp + 0xd4], xmm0
lea ebp, [esp + 0xfc]
lea eax, [edi + 0x790]
push eax
push 0xf00bac
push esi
call fcn.006368f0
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xf8], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [esp + 0xe8], xmm0
mov byte [esp + 2], bl
test bl, bl
je 0x58072b
lea eax, [edi + 0x930]
lea ebx, [esp + 0x5c]
push eax
push 0xf00bb1
push ebx
call fcn.00637280
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp], xmm0
lea eax, [edi + 0x934]
push eax
push 0xf00bc1
push ebx
call fcn.00635fd0
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x24], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp + 0x14], xmm0
push ebx
call fcn.006384e0
add esp, 4
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x134], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [esp + 0x124], xmm0
mov eax, dword [edi + 0xb4]
shr eax, 8
and eax, 1
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x3a8]
test cl, 1
mov ebx, dword [esp + 4]
je 0x580724
mov dword [esp + 0x10], 1
test cl, 4
jne 0x580795
jmp 0x58079d
lea eax, [edi + 0x960]
push eax
push 0xf00bcc
push esi
call fcn.00637280
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp], xmm0
push esi
call fcn.006384e0
add esp, 4
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x24], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp + 0x14], xmm0
mov eax, dword [edi + 0xb4]
shr eax, 0xa
and eax, 1
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x3a8]
test cl, 2
mov ebx, dword [esp + 4]
je 0x580790
mov dword [esp + 0x10], 1
test cl, 8
je 0x58079d
mov dword [esp + 0xc], 1
test eax, eax
je 0x5807ce
lea esi, [esp + 0x70]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x2c]
push eax
push 0xf00bda
push ecx
call fcn.00635fd0
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esp + 0x5c], xmm0
cmp dword [esp + 0x10], 0
je 0x580800
lea ebp, [esi + 0x14]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x2c]
push eax
push 0xf00be2
push ecx
call fcn.00635fd0
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
cmp dword [esp + 0xc], 0
je 0x580832
lea ebp, [esi + 0x14]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x2c]
push eax
push 0xf00bed
push ecx
call fcn.00635fd0
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
movzx edx, byte [esp + 2]
test dl, dl
je 0x580861
mov eax, dword [edi + 0x71c]
test eax, eax
je 0x580861
movzx ecx, byte [eax + 0x300]
mov eax, ecx
dec al
cmp al, 3
ja 0x580861
mov eax, 0x100
shl eax, cl
mov dword [esp + 0x18], eax
jmp 0x58086b
cmp dword [esp + 0x18], 0x4000
je 0x58089b
lea ebp, [esi + 0x14]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x2c]
push eax
push 0xf00bf5
push ecx
call fcn.006363d0
movzx edx, byte [esp + 0xe]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
mov eax, dword [edi + 0x38]
test eax, eax
sete cl
xor dl, 1
or cl, dl
mov byte [esp + 3], dl
jne 0x5808e9
mov eax, dword [esp + 0x158]
dec eax
cmp eax, 2
jae 0x58095c
cmp dword [edi + 0x854], 2
mov eax, dword [edi + 0xe84]
jne 0x5808df
mov ecx, dword [edi + 0x71c]
mov ecx, dword [ecx + 0x2f4]
cmp eax, ecx
cmovae eax, ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x580931
jmp 0x58095c
cmp dword [esp + 0x154], 1
jne 0x58095c
cmp dword [esp + 0x158], 1
jne 0x58095c
test eax, eax
jne 0x58095c
mov eax, dword [edi + 0x71c]
mov eax, dword [eax + 0x2f4]
test eax, eax
jne 0x58092d
mov eax, dword [edi + 0x720]
test eax, eax
je 0x580d13
mov eax, dword [eax + 0x2f4]
test eax, eax
je 0x580d13
mov dword [esp + 0x14], eax
lea ebp, [esi + 0x14]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x2c]
push eax
push 0xf00c02
push ecx
call fcn.006368f0
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
lea eax, [esp + 0x2c]
push eax
call fcn.006384e0
add esp, 4
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
movzx ecx, byte [esp + 2]
test cl, cl
je 0x5809bb
jmp 0x580a00
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov esi, 0x142
mov ebp, 0x598
cmp eax, ebx
movzx ecx, byte [esp + 2]
je 0x580cbb
test eax, eax
je 0x580cbb
mov ebx, eax
test cl, cl
jne 0x580a00
xor ebp, ebp
cmp dword [esp + 0x158], 0
je 0x5809f0
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x28]
and eax, 8
je 0x5809f0
push 2
push edi
call fcn.005801d0
add esp, 8
mov esi, eax
xor eax, eax
jmp 0x580a6c
xor eax, eax
xor esi, esi
jmp 0x580a6c
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x28]
xor esi, esi
mov ebp, dword [edi + 0x92c]
cmp dword [esp + 0x158], 0
je 0x580a38
mov ecx, eax
and ecx, 8
je 0x580a38
push 1
push edi
call fcn.005801d0
add esp, 8
mov esi, eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x28]
test al, 8
jne 0x580a50
call fcn.005da060
jmp 0x580a55
call fcn.005d8410
push eax
call fcn.005d27a0
add esp, 4
test eax, eax
je 0x580cb1
mov dword [edi + 0x92c], eax
mov dword [esp + 4], ebp
mov ecx, dword [0xf00c18]
mov dword [esp + 0x2c], ecx
mov ecx, dword [0xf00c1c]
mov dword [esp + 0x30], ecx
cmp dword [edi + 0x364], 0
je 0x580ab0
mov ebp, ebx
mov ecx, dword [0xf00c20]
mov dword [esp + 0x34], ecx
mov ecx, dword [0xf00c24]
mov dword [esp + 0x38], ecx
mov ecx, 2
lea edx, [esp + 0x3c]
jmp 0x580abb
mov ebp, ebx
mov ecx, 1
lea edx, [esp + 0x34]
mov ebx, dword [0xf00c28]
mov dword [edx], ebx
mov ebx, dword [0xf00c2c]
mov dword [edx + 4], ebx
cmp dword [edi + 0x958], 0
je 0x580af0
mov edx, dword [0xf00c30]
mov dword [esp + ecx*8 + 0x34], edx
mov edx, dword [0xf00c34]
mov dword [esp + ecx*8 + 0x38], edx
add ecx, 2
jmp 0x580af1
inc ecx
mov ebx, ebp
mov dword [esp + ecx*8 + 0x30], 0
mov dword [esp + ecx*8 + 0x2c], 0
movzx ecx, si
lea edx, [esp + 0x28]
push edx
push dword [edi + 0x918]
push edi
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0xe4]
push edx
lea edx, [esp + 0x70]
push edx
push 0
push 0
push eax
push dword [esp + 0x78]
mov ebp, dword [esp + 0x2c]
push ebp
push dword [esp + 0x1bc]
push dword [esp + 0x50]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push ecx
push dword [esp + 0x1c0]
push dword [esp + 0x1c0]
push dword [edi + 0x38]
push dword [esp + 0x1c4]
mov eax, dword [esp + 0xd0]
push dword [eax + 0x280]
push dword [eax]
call dword [ebx]
add esp, 0x80
mov esi, eax
push ebp
call fcn.005d27b0
add esp, 4
cmp esi, 0xffffffff
je 0x580990
cmp esi, 0xfffffffe
movzx ecx, byte [esp + 2]
je 0x580c99
cmp esi, 1
jne 0x580ca5
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
test byte [eax + 0x28], 8
sete al
or cl, al
mov esi, dword [esp + 0x1c]
jne 0x580c19
mov eax, dword [edi + 0x360]
push dword [eax + 0x114]
call fcn.005a7f70
add esp, 4
test eax, eax
jne 0x580c34
mov eax, dword [esp + 8]
mov eax, dword [eax]
test eax, eax
je 0x580c34
push dword [edi + esi]
call dword [eax + 4]
add esp, 4
test eax, eax
je 0x580cee
mov eax, dword [esp + 0x28]
mov dword [edi + esi], eax
mov eax, dword [esp + 8]
mov dword [eax], ebx
movzx eax, byte [esp + 3]
mov ebx, dword [edi + eax*4 + 0x91c]
mov esi, dword [edi + eax*4 + 0x924]
cmp dword [edi + 0x1a4], 0
je 0x580c66
cmp dword [edi + 0x228], 0
jne 0x580c75
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x580c75
push 1
push esi
call eax
add esp, 8
mov ecx, dword [edi + 0x7b0]
mov eax, 1
test ecx, ecx
je 0x580ce3
mov edx, dword [ebx + 0x3c]
test edx, edx
je 0x580ce3
push ecx
push esi
call edx
mov eax, 1
add esp, 8
jmp 0x580ce3
mov esi, 0x139
mov ebp, 0x58c
jmp 0x580cbb
mov esi, 0xc0103
mov ebp, 0x5a0
jmp 0x580cbb
mov esi, 0xc0103
mov ebp, 0x563
call fcn.0060c3a0
push 0xf00b8b
push ebp
push 0xf00b3c
call fcn.0060c4a0
add esp, 0xc
push 0
push esi
push 0x50
push edi
call fcn.005928a0
add esp, 0x10
xor eax, eax
add esp, 0x138
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0060c3a0
push 0xf00b8b
push 0x5b1
push 0xf00b3c
call fcn.0060c4a0
add esp, 0xc
push 0
push 0xc0103
jmp 0x580cd6
call fcn.0060c3a0
push 0xf00c71
push 0x7f
push 0xf00b3c
call fcn.0060c4a0
add esp, 0xc
push 0
push 0xc0103
push 0x50
push edi
call fcn.005928a0
add esp, 0x10
mov dword [esp + 0x14], 0
jmp 0x58095c