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

Disassembly:
sub esp, 0x594
push ebx
mov ebx, ecx
mov dword [esp + 4], edx
push ebp
push esi
push edi
mov eax, dword [ebx + 0x90c]
lea edi, [ebx + 0xad4]
mov dword [esp + 0x40], ebx
cmp eax, dword [edi + 0x568]
je 0x567cc9
call fcn.00567c20
mov eax, dword [ebx + 0x90c]
mov dword [edi + 0x568], eax
cmp dword [ebx + 0x1040], 0
jne 0x567e25
cmp dword [ebx + 0x1044], 0
jne 0x567e18
cmp dword [ebx + 0x924], 0
jle 0x567d46
lea ecx, [ebx + 0x928]
lea ebp, [edi + 0x500]
mov dword [esp + 0x14], ecx
xor edi, edi
mov edi, edi
movsx edx, word [ecx]
lea ebp, [ebp + 2]
movzx esi, word [ebp - 2]
inc edi
movsx eax, si
sub edx, eax
movzx eax, dx
imul ecx, eax, 0x3fdc
sar edx, 0x10
imul eax, edx, 0x3fdc
sar ecx, 0x10
add ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x14]
mov word [ebp - 2], ax
add ecx, 2
mov dword [esp + 0x14], ecx
cmp edi, dword [ebx + 0x924]
jl 0x567d00
lea edi, [ebx + 0xad4]
mov eax, dword [ebx + 0x914]
xor esi, esi
xor ebp, ebp
xor edx, edx
test eax, eax
jle 0x567d89
mov edi, eax
jmp 0x567d60
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edx*4 + 0x10]
cmp ecx, esi
mov eax, edx
cmovle eax, ebp
inc edx
cmp ecx, esi
mov ebp, eax
cmovle ecx, esi
mov esi, ecx
cmp edx, edi
jl 0x567d60
mov eax, dword [ebx + 0x914]
lea edi, [ebx + 0xad4]
mov ecx, dword [ebx + 0x91c]
dec eax
imul eax, ecx
shl eax, 2
push eax
lea eax, [edi + ecx*4]
push edi
push eax
call fcn.005854c0
mov ecx, dword [ebx + 0x91c]
lea eax, [ecx*4]
imul ecx, ebp
push eax
inc ecx
lea eax, [ebx + ecx*4]
push eax
push edi
call fcn.005854c0
add esp, 0x18
mov dword [esp + 0x14], 0
cmp dword [ebx + 0x914], 0
jle 0x567e18
mov ebp, dword [esp + 0x10]
mov esi, dword [edi + 0x560]
add ebp, 0x10
mov edi, edi
mov edx, dword [ebp]
lea ebp, [ebp + 4]
sub edx, esi
movzx eax, dx
imul ecx, eax, 0x121a
sar edx, 0x10
imul eax, edx, 0x121a
sar ecx, 0x10
add esi, eax
mov eax, dword [esp + 0x14]
add esi, ecx
inc eax
mov dword [edi + 0x560], esi
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x914]
jl 0x567de0
cmp dword [ebx + 0x1040], 0
je 0x568266
mov eax, dword [esp + 0x5ac]
mov ebp, 0xff
mov ecx, dword [edi + 0x560]
cmp eax, ebp
jge 0x567e46
jmp 0x567e40
sar ebp, 1
cmp ebp, eax
jg 0x567e40
mov esi, dword [edi + 0x564]
test eax, eax
jle 0x567ed7
mov eax, ecx
sar ecx, 0x13
sar eax, 4
inc ecx
sar ecx, 1
xor ebx, ebx
cwde
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
lea ebx, [ebx]
imul esi, esi, 0xbb38435
add esi, 0x3619636b
mov eax, esi
sar eax, 0x18
and eax, ebp
mov ecx, dword [edi + eax*4]
mov eax, ecx
sar eax, 0x10
imul eax, dword [esp + 0x14]
movzx edx, cx
imul edx, dword [esp + 0x14]
sar edx, 0x10
add edx, eax
mov eax, dword [esp + 0x1c]
imul eax, ecx
add eax, edx
cmp eax, 0x7fff
jle 0x567eb4
mov eax, 0x7fff
jmp 0x567ec1
cmp eax, 0xffff8000
mov ecx, 0xffff8000
cmovl eax, ecx
cwde
mov dword [esp + ebx*4 + 0xa4], eax
inc ebx
cmp ebx, dword [esp + 0x5ac]
jl 0x567e70
mov ebx, dword [esp + 0x40]
mov dword [edi + 0x564], esi
lea edx, [edi + 0x500]
push dword [ebx + 0x924]
lea ecx, [esp + 0x24]
call fcn.0056d3b0
lea eax, [edi + 0x520]
xor edx, edx
mov esi, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5b0]
lea edi, [esp + 0x68]
add esp, 4
mov dword [esp + 0x1c], edx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
test eax, eax
jle 0x568249
movsx eax, word [esp + 0x2c]
movsx ecx, word [esp + 0x2a]
mov dword [esp + 0x58], eax
movsx eax, word [esp + 0x30]
mov dword [esp + 0x54], eax
movsx eax, word [esp + 0x32]
mov dword [esp + 0x50], eax
movsx eax, word [esp + 0x20]
mov dword [esp + 0x4c], eax
lea ebx, [ebx]
lea eax, [edx*4]
mov esi, dword [esp + eax + 0x90]
mov ebp, dword [esp + eax + 0x9c]
mov ebx, dword [esp + eax + 0x98]
mov edi, dword [esp + eax + 0x94]
mov edx, dword [esp + eax + 0x8c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
movzx eax, dx
imul eax, ecx
movzx ecx, si
movsx esi, word [esp + 0x28]
imul ecx, esi
movsx esi, word [esp + 0x26]
sar eax, 0x10
sar edx, 0x10
sar ecx, 0x10
add eax, ecx
movzx ecx, di
imul ecx, esi
movsx esi, word [esp + 0x24]
sar edi, 0x10
sar ecx, 0x10
add eax, ecx
movzx ecx, bx
imul ecx, esi
movsx esi, word [esp + 0x22]
sar ebx, 0x10
sar ecx, 0x10
add eax, ecx
movzx ecx, bp
imul ecx, esi
mov esi, dword [esp + 0x14]
sar ebp, 0x10
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + esi + 0xa0]
movzx ecx, cx
imul ecx, dword [esp + 0x4c]
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + esi + 0x7c]
movzx ecx, cx
imul ecx, dword [esp + 0x50]
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + esi + 0x80]
movzx ecx, cx
imul ecx, dword [esp + 0x54]
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + esi + 0x88]
movzx ecx, cx
imul ecx, dword [esp + 0x58]
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + esi + 0x84]
movsx esi, word [esp + 0x2e]
movzx ecx, cx
imul ecx, esi
mov esi, dword [esp + 0x18]
sar esi, 0x10
sar ecx, 0x10
add eax, ecx
movsx ecx, word [esp + 0x2a]
imul edx, ecx
movsx ecx, word [esp + 0x28]
imul esi, ecx
movsx ecx, word [esp + 0x26]
imul edi, ecx
movsx ecx, word [esp + 0x24]
add eax, edx
imul ebx, ecx
movsx ecx, word [esp + 0x22]
add eax, esi
mov esi, dword [esp + 0x14]
imul ebp, ecx
add eax, edi
add eax, ebx
mov ecx, dword [esp + esi + 0xa0]
add eax, ebp
movsx edx, word [esp + 0x20]
sar ecx, 0x10
imul ecx, edx
movsx edx, word [esp + 0x32]
add eax, ecx
mov ecx, dword [esp + esi + 0x7c]
sar ecx, 0x10
imul ecx, edx
movsx edx, word [esp + 0x30]
add eax, ecx
mov ecx, dword [esp + esi + 0x80]
sar ecx, 0x10
imul ecx, edx
movsx edx, word [esp + 0x2c]
add eax, ecx
mov ecx, dword [esp + esi + 0x88]
sar ecx, 0x10
imul ecx, edx
movsx edx, word [esp + 0x2e]
add eax, ecx
mov ecx, dword [esp + esi + 0x84]
sar ecx, 0x10
imul ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x924]
mov ecx, edx
sar ecx, 1
add eax, ecx
cmp edx, 0x10
jne 0x5681ee
mov ecx, dword [esp + 0x36]
movsx ecx, cx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x3a]
movsx ecx, cx
mov dword [esp + 0x48], ecx
movsx ecx, word [esp + 0x3e]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x34]
movsx ebp, cx
mov ebx, dword [esp + esi + 0x70]
mov ecx, dword [esp + 0x38]
movsx edi, cx
mov esi, dword [esp + esi + 0x68]
mov ecx, dword [esp + 0x3c]
movsx edx, cx
movzx ecx, si
imul ecx, edx
mov dword [esp + 0x5c], edi
sar esi, 0x10
imul esi, edx
sar ecx, 0x10
mov dword [esp + 0x10], ecx
movzx ecx, bx
imul ecx, edi
mov edi, dword [esp + 0x14]
sar ebx, 0x10
imul ebx, dword [esp + 0x5c]
sar ecx, 0x10
add dword [esp + 0x10], ecx
mov ecx, dword [esp + edi + 0x78]
movzx ecx, cx
imul ecx, ebp
sar ecx, 0x10
add dword [esp + 0x10], ecx
mov ecx, dword [esp + edi + 0x64]
movzx ecx, cx
imul ecx, dword [esp + 0x44]
sar ecx, 0x10
add dword [esp + 0x10], ecx
mov ecx, dword [esp + edi + 0x6c]
movzx ecx, cx
imul ecx, dword [esp + 0x48]
sar ecx, 0x10
add dword [esp + 0x10], ecx
mov ecx, dword [esp + edi + 0x74]
movzx ecx, cx
imul ecx, dword [esp + 0x18]
sar ecx, 0x10
add dword [esp + 0x10], ecx
mov edx, dword [esp + 0x10]
add edx, esi
mov esi, edi
add edx, ebx
mov ecx, dword [esp + esi + 0x78]
sar ecx, 0x10
imul ecx, ebp
add edx, ecx
mov ecx, dword [esp + esi + 0x64]
sar ecx, 0x10
imul ecx, dword [esp + 0x44]
add edx, ecx
mov ecx, dword [esp + esi + 0x6c]
sar ecx, 0x10
imul ecx, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [esp + esi + 0x74]
sar ecx, 0x10
imul ecx, dword [esp + 0x18]
add eax, ecx
add eax, edx
mov edx, dword [esp + 0x1c]
mov ecx, eax
mov ebx, dword [esp + 0x5a8]
sar eax, 5
shl ecx, 4
inc eax
add dword [esp + esi + 0xa4], ecx
movsx ecx, word [ebx + edx*2]
sar eax, 1
add eax, ecx
cmp eax, 0x7fff
jle 0x56821f
mov eax, 0x7fff
jmp 0x56822c
cmp eax, 0xffff8000
mov ecx, 0xffff8000
cmovl eax, ecx
movsx ecx, word [esp + 0x2a]
mov word [ebx + edx*2], ax
inc edx
mov eax, dword [esp + 0x5ac]
mov dword [esp + 0x1c], edx
cmp edx, eax
jl 0x567f50
mov edi, dword [esp + 0x60]
lea esi, [esp + 0x64]
lea esi, [esi + eax*4]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x594
ret
mov eax, dword [ebx + 0x924]
shl eax, 2
push eax
lea eax, [edi + 0x520]
push 0
push eax
call fcn.00585a40
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x594
ret