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

Disassembly:
sub esp, 0x14
mov edx, dword [esp + 0x20]
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
mov esi, dword [esp + 0x30]
cmp dword [ebx + 0x7c], 0
mov ebp, dword [ebx]
push edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
je 0x57899e
mov eax, dword [ebx + 0x18]
mov ecx, edi
sub ecx, dword [ebx + 8]
sar ecx, 1
cmp byte [ecx + eax], 0
je 0x57899e
mov eax, dword [ebx + 0x1c]
push esi
push edx
push edi
push ebx
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], eax
call fcn.0057be90
mov edx, dword [esp + 0x40]
add esp, 0x10
cmp edi, edx
jae 0x578fe9
mov edx, 0x81
jmp 0x5789b4
mov esi, dword [esp + 0x34]
movzx ecx, word [edi]
movzx eax, cx
dec eax
mov dword [esp + 0x20], ecx
cmp eax, 0xa5
ja case.0x5789d1.98
movzx eax, byte [eax + 0x57909c]
jmp dword [eax*4 + 0x579044]
mov eax, dword [esi + 8]
lea ecx, [esi + 0xc]
test eax, eax
lea edx, [eax + 4]
cmove edx, ecx
lea eax, [edi + 2]
push edx
push eax
movzx eax, word [edi]
push eax
push ebx
call fcn.0057b0d0
add esp, 0x10
mov edi, eax
jmp 0x578fd4
mov ecx, dword [esi + 8]
lea edx, [esi + 0xc]
test ecx, ecx
push 1
lea eax, [ecx + 4]
cmove eax, edx
push eax
lea eax, [edi + 2]
push eax
movzx eax, word [edi]
push eax
push ebx
call fcn.00575330
add esp, 0x14
mov edi, eax
jmp 0x578fd4
cmp dword [ebp], 0
jne case.0x5789d1.98
push 0x14
push ebp
call fcn.00583880
add esp, 8
mov ecx, eax
cmp dword [ebp], 0
jne case.0x5789d1.98
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov dword [ecx + 0x10], edi
mov dword [esi + 8], ecx
cmp dword [ebp], 0
mov eax, dword [ebx + 0x24]
jne 0x578a89
add eax, 0x20
push eax
push 0x8d
push 0
push 3
push 1
push ebp
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x578a89
mov byte [eax], 0x8b
push 1
push ebx
call fcn.0056ecb0
add esp, 8
cmp dword [ebp], 0
jne 0x578adf
mov eax, dword [ebx + 0x24]
add eax, 0x20
push eax
push 0x8d
push 0
push 2
push 1
push ebp
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x578abc
mov byte [eax], 0x89
cmp dword [ebp], 0
jne 0x578adf
push 0
push 0x8b
push 0
push 3
push 1
push ebp
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x578adf
mov byte [eax], 0x89
add edi, 2
jmp 0x578fd4
mov edx, dword [esi + 8]
add esi, 0xc
cmp dword [ebx + 0x68], 1
lea eax, [edx + 4]
jne 0x578b12
test edx, edx
cmove eax, esi
mov esi, dword [esp + 0x30]
push eax
push esi
push edi
push ebx
call fcn.00576310
add esp, 0x10
mov edi, eax
jmp 0x578fd8
test edx, edx
push 1
cmove eax, esi
push eax
lea eax, [edi + 2]
push eax
push ecx
push ebx
call fcn.00575330
add esp, 0x14
mov edi, eax
jmp 0x578fd4
mov ax, word [edi + 0x22]
sub ax, 0x62
cmp ax, 0xb
ja case.0x5789d1.6
push esi
push edi
push ebx
call fcn.00577550
add esp, 0xc
mov edi, eax
jmp 0x578fd4
lea eax, [edi + 2]
mov dword [esp + 0x1c], eax
movzx eax, word [eax]
mov ax, word [edi + eax*2]
sub ax, 0x62
cmp ax, 0xb
ja 0x578b7d
push esi
push edi
push ebx
call fcn.00577550
add esp, 0xc
mov edi, eax
jmp 0x578fd4
mov ecx, dword [esi + 8]
lea edx, [esi + 0xc]
test ecx, ecx
push 1
lea eax, [ecx + 4]
cmove eax, edx
push eax
push dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
push eax
push ebx
call fcn.00575330
add esp, 0x14
mov edi, eax
jmp 0x578fd4
lea eax, [edi + 4]
mov dword [esp + 0x20], eax
mov ax, word [eax]
sub ax, 0x62
cmp ax, 0xb
ja 0x578bcd
push esi
push edi
push ebx
call fcn.00579ee0
add esp, 0xc
mov edi, eax
jmp 0x578fd4
mov ecx, dword [esi + 8]
lea edx, [esi + 0xc]
push 0
test ecx, ecx
push 1
lea eax, [ecx + 4]
cmove eax, edx
push eax
push edi
push ebx
call fcn.0057a750
mov edi, dword [esp + 0x34]
add esp, 0x14
jmp 0x578fd4
lea eax, [edi + 6]
mov dword [esp + 0x20], eax
mov ax, word [eax]
sub ax, 0x62
cmp ax, 0xb
ja 0x578c19
push esi
push edi
push ebx
call fcn.00579ee0
add esp, 0xc
mov edi, eax
jmp 0x578fd4
mov ecx, dword [esi + 8]
add esi, 0xc
test ecx, ecx
lea eax, [ecx + 4]
cmove eax, esi
push eax
push edi
push ebx
call fcn.005769f0
mov ecx, dword [esp + 0x40]
push 0
push 1
mov ecx, dword [ecx + 8]
test ecx, ecx
lea eax, [ecx + 4]
cmove eax, esi
push eax
push edi
push ebx
call fcn.0057a750
mov edi, dword [esp + 0x40]
add esp, 0x20
jmp 0x578fd4
push esi
push edi
push ebx
call fcn.00579b80
add esp, 0xc
mov edi, eax
jmp 0x578fd4
push esi
push edi
push ebx
call fcn.00574fd0
add esp, 0xc
mov edi, eax
jmp 0x578fd4
cmp dword [ebp], 0
jne case.0x5789d1.98
push 0x24
push ebp
call fcn.00583880
add esp, 8
mov ecx, eax
cmp dword [ebp], 0
jne case.0x5789d1.98
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
push 0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], 0
mov eax, dword [esi + 8]
push ecx
mov dword [ecx], eax
push edi
mov dword [ecx + 0x10], edi
push ebx
mov dword [esi + 8], ecx
call fcn.00570870
add esp, 0x10
mov edi, eax
jmp 0x578fd4
cmp dword [ebp], 0
jne case.0x5789d1.98
push 0x18
push ebp
call fcn.00583880
add esp, 8
mov ecx, eax
cmp dword [ebp], 0
mov dword [esp + 0x20], ecx
jne case.0x5789d1.98
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], edi
add edi, 2
mov dword [ecx], eax
mov dword [esi + 8], ecx
nop dword [eax]
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
movzx eax, word [edi]
cmp eax, 0x78
je 0x578d10
add edi, 4
cmp eax, 0x7b
je 0x578d36
push 1
push ebx
call fcn.0056ecb0
add esp, 8
xor eax, eax
jmp 0x578d59
push 2
push ebx
call fcn.0056ecb0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push ebp
call fcn.0058eef0
add esp, 0x20
mov eax, 4
push 0
push 2
push eax
push 0x8b
push 0x20
push ebp
call fcn.0058eef0
push ebp
call fcn.0058ecc0
mov ecx, dword [esp + 0x3c]
push ebx
mov dword [ecx + 0x14], eax
call fcn.0057ea90
add esp, 0x20
jmp 0x578fd4
cmp word [edi + 2], dx
jbe case.0x5789d1.126
push esi
push edi
push ebx
call fcn.00573110
add esp, 0xc
mov edi, eax
jmp 0x578fd4
push esi
push edi
push ebx
call fcn.005745e0
add esp, 0xc
mov edi, eax
jmp 0x578fd4
cmp dword [ebp], 0
jne case.0x5789d1.98
push 0x14
push ebp
call fcn.00583880
add esp, 8
mov ecx, eax
cmp dword [ebp], 0
jne case.0x5789d1.98
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov dword [ecx + 0x10], edi
mov dword [esi + 8], ecx
push dword [ebx + 0x40]
push 0x8d
push 0
push 3
push 0x20
push ebp
call fcn.0058eef0
xor eax, eax
cmp dword [ebx + 0x78], eax
setne al
lea eax, [eax*4 + 1]
push eax
push ebx
call fcn.0056ecb0
push 0
push 8
push 0
push 1
push 0x20
push ebp
call fcn.0058eef0
mov eax, dword [ebx + 0x78]
neg eax
push 0
push 3
sbb eax, eax
and eax, 0x10
push eax
push 0x8b
push 0x20
push ebp
call fcn.0058eef0
add esp, 0x50
lea esi, [edi + 4]
push esi
push 0x40
push 0
push 3
push 0x20
push ebp
call fcn.0058eef0
push 0
push 3
push dword [ebx + 0x40]
push 0x8d
push 0x20
push ebp
call fcn.0058eef0
push 0
push 3
push 0x18
push 0x81
push 0x20
push ebp
call fcn.0058eef0
add esp, 0x48
cmp dword [ebx + 0x78], 0
je 0x578f01
push dword [ebx + 0x44]
push 0x8d
push 0
push 1
push 0x20
push ebp
call fcn.0058eef0
push 0
push 0xb
push dword [ebx + 0x44]
push 0x8d
push 0x20
push ebp
call fcn.0058eef0
push 0
push 0x40
push 4
push 0x8b
push 0x20
push ebp
call fcn.0058eef0
add esp, 0x48
push esi
push 0x40
push 8
push 0x8b
push 0x20
push ebp
call fcn.0058eef0
push 0
push 2
push 0xc
push 0x8b
push 0x20
push ebp
call fcn.0058eef0
push 0
push 1
push 0
push 0x8b
push 0x20
push ebp
call fcn.0058eef0
add esp, 0x48
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
add edi, 6
jmp 0x578fd4
push esi
push edi
push ebx
call fcn.00576890
add esp, 0xc
mov edi, eax
jmp 0x578fd4
push esi
push edi
push ebx
call fcn.00576b60
add esp, 0xc
mov edi, eax
jmp 0x578fd4
cmp dword [ebx + 0xd8], 0
movzx ecx, word [edi + 2]
mov eax, dword [ebx + 0x14]
mov esi, dword [ebx]
mov dword [esp + 0x20], ecx
mov al, byte [ecx + eax]
mov byte [esp + 0x13], al
jne 0x578fbb
test al, al
jne 0x578f74
mov eax, dword [ebx + 0x20]
lea eax, [eax + ecx*4]
push eax
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0058eef0
mov ecx, dword [esp + 0x38]
add esp, 0x18
mov eax, dword [ebx + 0x24]
push 0
shl ecx, 3
add eax, 4
push 2
add eax, ecx
mov dword [esp + 0x28], ecx
push eax
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
cmp byte [esp + 0x13], 0
jne 0x578fbb
mov eax, dword [ebx + 0x24]
add eax, dword [esp + 0x20]
push 0
push 1
push eax
push 0x8d
push 0x20
push esi
call fcn.0058eef0
add esp, 0x18
add edi, 4
jmp 0x578fd4
lea ecx, [edi + 2]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
je 0x578fc3
lea edi, [ecx + 4]
mov esi, dword [esp + 0x30]
test edi, edi
je case.0x5789d1.98
mov edx, 0x81
cmp edi, esi
jb 0x5789b0
cmp dword [esp + 0x14], 0
je case.0x5789d1.98
cmp dword [ebp], 0
jne case.0x5789d1.98
push 0x24
push ebp
call fcn.00583880
add esp, 8
mov edx, eax
cmp dword [ebp], 0
jne case.0x5789d1.98
mov ecx, dword [esp + 0x34]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm0
mov dword [edx + 0x20], 0
mov eax, dword [ecx + 8]
mov dword [edx], eax
mov dword [ecx + 8], edx
mov dword [edx + 0x10], 0x72cea0
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x1c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret