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

Disassembly:
sub esp, 0x64
push ebx
mov ebx, dword [esp + 0x6c]
push ebp
push esi
mov ax, word [ebx + 2]
push edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x10], ecx
mov ebp, eax
mov dx, word [edi + 2]
cmp ax, dx
jg 0x570344
mov ebp, edx
cmp ax, dx
mov esi, eax
jl 0x57034d
mov esi, edx
cmp ax, dx
jge 0x570354
mov edx, eax
movsx eax, word [edi]
movsx edx, dx
lea ecx, [eax - 4]
sub edx, 7
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
movsx ecx, word [ebx]
sub ecx, eax
movsx edx, si
movsx eax, bp
add ecx, 8
sub eax, edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x64]
add eax, 0xb
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov dword [esp + 0x78], eax
call fcn.005725b0
test al, al
jne 0x5703a7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0xc
movsx ecx, word [edi + 2]
movsx edx, word [ebx + 2]
mov eax, ecx
sub eax, edx
mov dword [esp + 0x30], eax
cdq
mov ebp, eax
movsx eax, word [ebx]
xor ebp, edx
sub ebp, edx
movsx edx, word [edi]
sub eax, edx
mov dword [esp + 0x7c], ebp
lea edx, [eax - 5]
cmp ebp, edx
jle 0x5703dd
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x64
ret 0xc
inc eax
mov esi, dword [esp + 0x64]
cdq
sub eax, edx
mov dword [esp + 0x54], esi
mov ebp, eax
mov eax, dword [esp + 0x68]
sub ecx, eax
mov dword [esp + 0x18], eax
sar ebp, 1
add ecx, eax
add ebp, 3
cmp eax, ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ecx
jge 0x570494
lea ecx, [esi + ebp + 2]
mov dword [esp + 0x1c], ecx
cmp esi, dword [esp + 0x1c]
jge 0x570483
mov dx, word [esp + 0x18]
lea ecx, [esp + 0x14]
mov word [esp + 0x14], si
mov word [esp + 0x16], dx
call fcn.0058a6c0
test al, al
je 0x570472
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x14]
call fcn.0056b610
lea eax, [esp + 0x14]
mov ecx, 0x81a800
push eax
call fcn.005453b0
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x24], eax
call fcn.00572980
mov edx, dword [esp + 0x24]
mov cl, byte [eax + 0x10]
mov byte [edx + 0x11b], cl
mov eax, dword [esp + 0x1c]
inc esi
cmp esi, eax
jl 0x57041a
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
inc ecx
cmp ecx, edx
mov dword [esp + 0x18], ecx
jl 0x570414
movsx ecx, word [ebx + 2]
movsx esi, word [ebx]
sub ecx, eax
sub esi, ebp
add esi, 2
mov dword [esp + 0x18], eax
lea edx, [ecx + eax]
cmp eax, edx
mov dword [esp + 0x24], edx
jge 0x570537
lea ecx, [esi + ebp + 3]
cmp esi, ecx
mov ebx, esi
jge 0x570526
mov ax, word [esp + 0x18]
lea ecx, [esp + 0x14]
mov word [esp + 0x14], bx
mov word [esp + 0x16], ax
call fcn.0058a6c0
test al, al
je 0x570515
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x14]
call fcn.0056b610
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x81a800
call fcn.005453b0
mov ecx, dword [esp + 0x80]
mov ebp, eax
call fcn.00572980
mov dl, byte [eax + 0x10]
mov byte [ebp + 0x11b], dl
mov ebp, dword [esp + 0x28]
inc ebx
lea ecx, [esi + ebp + 3]
cmp ebx, ecx
jl 0x5704bf
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
inc ebx
cmp ebx, edx
mov dword [esp + 0x18], ebx
jl 0x5704b9
mov ebx, dword [esp + 0x78]
movsx ecx, word [edi]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x54], ecx
movsx ecx, word [edi + 2]
mov esi, edx
mov dword [esp + 0x18], ecx
sub esi, ecx
lea esi, [esi + eax - 2]
add esi, ecx
cmp ecx, esi
mov dword [esp + 0x28], esi
jge 0x5705d6
mov ebx, dword [esp + 0x54]
lea ecx, [ebx + ebp - 2]
cmp ebx, ecx
mov esi, ebx
jge 0x5705c3
mov dx, word [esp + 0x18]
lea ecx, [esp + 0x14]
mov word [esp + 0x14], si
mov word [esp + 0x16], dx
call fcn.0058a6c0
test al, al
je 0x5705b2
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
mov edx, dword [ebx + 8]
call fcn.0056b610
lea eax, [esp + 0x14]
mov ecx, 0x81a800
push eax
call fcn.005453b0
mov cl, byte [ebx + 0x10]
mov ebx, dword [esp + 0x54]
mov byte [eax + 0x11b], cl
inc esi
lea ecx, [ebx + ebp - 2]
cmp esi, ecx
jl 0x57056a
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x18]
inc esi
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x18], esi
jl 0x570564
mov ebx, dword [esp + 0x78]
movsx ecx, word [ebx + 2]
movsx esi, word [ebx]
sub edx, ecx
sub esi, ebp
add esi, 2
mov dword [esp + 0x18], ecx
lea eax, [edx + eax - 2]
add eax, ecx
cmp ecx, eax
mov dword [esp + 0x24], eax
jge 0x570666
lea ebp, [esi + ebp - 1]
mov dword [esp + 0x28], ebp
cmp esi, ebp
mov ebx, esi
jge 0x570655
mov dx, word [esp + 0x18]
lea ecx, [esp + 0x14]
mov word [esp + 0x14], bx
mov word [esp + 0x16], dx
call fcn.0058a6c0
test al, al
je 0x57064c
mov ebp, dword [esp + 0x10]
lea ecx, [esp + 0x14]
mov edx, dword [ebp + 8]
call fcn.0056b610
lea eax, [esp + 0x14]
mov ecx, 0x81a800
push eax
call fcn.005453b0
mov cl, byte [ebp + 0x10]
mov ebp, dword [esp + 0x28]
mov byte [eax + 0x11b], cl
inc ebx
cmp ebx, ebp
jl 0x570604
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x5705fe
mov ebx, dword [esp + 0x78]
mov ax, word [edi + 2]
mov dx, word [edi]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x80]
sub ax, 3
mov word [esp + 0x1c], dx
mov edx, dword [ebp + 0x10]
mov word [esp + 0x1e], ax
mov ecx, dword [esp + 0x1c]
mov eax, dword [0xa55c50]
mov dword [esp + 0x28], ecx
push edx
push esi
lea edx, [esp + 0x30]
lea ecx, [eax + 4]
call fcn.005850a0
mov cx, word [ebx]
mov dx, word [ebx + 2]
sub cx, 2
sub dx, 3
mov word [esp + 0x1c], cx
mov ecx, dword [ebp + 0x10]
mov word [esp + 0x1e], dx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [0xa55c50]
push ecx
push esi
lea edx, [esp + 0x30]
lea ecx, [eax + 5]
call fcn.005850a0
mov cx, word [ebx]
mov dx, word [ebx + 2]
dec cx
dec dx
mov word [esp + 0x1c], cx
mov ecx, dword [ebp + 0x10]
mov word [esp + 0x1e], dx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [0xa55c50]
push ecx
push esi
lea edx, [esp + 0x30]
lea ecx, [eax + 6]
call fcn.005850a0
mov esi, dword [esp + 0x30]
xor eax, eax
cmp esi, eax
mov word [esp + 0x28], ax
mov word [esp + 0x2a], ax
je 0x5708cb
mov ecx, 0xa581b8
call fcn.0062fc90
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
fild qword [esp + 0x54]
fmul qword [0x790dd0]
call fcn.0076a6b0
mov ebp, eax
cmp ebp, 1
ja 0x570726
xor ecx, ecx
mov word [esp + 0x34], 0
test esi, esi
setg cl
xor edx, edx
mov dword [esp + 0x1c], ecx
test esi, esi
setl dl
cmp ebp, 1
mov word [esp + 0x36], dx
jne 0x570788
mov ax, word [esp + 0x7c]
neg esi
mov word [esp + 0x28], ax
mov word [esp + 0x2a], si
jmp 0x57079b
mov ax, word [ebx]
sub ax, word [esp + 0x7c]
sub ax, word [edi]
sub eax, 5
mov word [esp + 0x34], ax
mov edx, dword [esp + 0x7c]
xor eax, eax
test edx, edx
mov dword [esp + 0x14], eax
jle 0x5708cb
mov dword [esp + 0x18], eax
jmp 0x5707bb
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + ecx*4]
xor ebp, ebp
mov esi, 0x7cb52c
lea ebx, [edx*4 + 0x7cb540]
jmp 0x5707d2
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x5707e0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
jmp 0x5707e4
mov dword [esp + 0x20], eax
mov cx, word [edi]
mov edx, ebp
neg edx
mov word [esp + 0x4e], dx
mov dx, word [edi + 2]
add cx, 3
mov word [esp + 0x3e], dx
mov edx, dword [esp + 0x3e]
mov word [esp + 0x3c], cx
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [esp + 0x4e]
add edx, eax
mov word [esp + 0x44], cx
mov word [esp + 0x46], dx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x46]
mov edx, dword [esp + 0x36]
mov word [esp + 0x24], ax
add ecx, edx
mov word [esp + 0x56], cx
mov eax, dword [esp + 0x56]
mov ecx, dword [esp + 0x20]
add eax, ecx
mov ecx, 0x81a800
mov word [esp + 0x26], ax
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x30]
mov dword [esp + 0x30], edx
push eax
call fcn.005453b0
mov edx, dword [esp + 0x10]
mov cl, byte [esi]
add esi, 4
add ebx, 4
add cl, byte [edx + 0x10]
sub cl, 4
mov byte [eax + 0x11b], cl
mov cl, byte [ebx - 4]
mov byte [eax + 0x11c], cl
mov edx, dword [0xa55c30]
and ecx, 0xff
inc ebp
mov byte [eax + 0x11a], 0
cmp esi, 0x7cb540
lea ecx, [ecx + edx - 1]
mov dword [eax + 0x38], ecx
mov eax, dword [esp + 0x14]
jl 0x5707ce
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
inc eax
dec edx
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jl 0x5707b3
mov ebx, dword [esp + 0x78]
movsx edx, word [ebx]
movsx eax, word [edi]
mov ebx, dword [esp + 0x7c]
sub edx, eax
sub edx, ebx
xor esi, esi
sub edx, 5
test edx, edx
jle 0x5709d0
mov ebp, dword [esp + 0x2a]
xor ebx, ebx
mov dx, word [edi]
mov ax, word [edi + 2]
mov ecx, ebx
add dx, 3
neg ecx
mov word [esp + 0x56], cx
mov word [esp + 0x44], dx
mov word [esp + 0x46], ax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x46]
mov eax, dword [esp + 0x56]
add ecx, esi
add edx, eax
mov word [esp + 0x3c], cx
mov word [esp + 0x3e], dx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x3e]
add ecx, edx
add eax, ebp
mov word [esp + 0x24], cx
mov word [esp + 0x26], ax
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], edx
mov edx, dword [0xa5861c]
test edx, edx
je 0x570970
movsx eax, ax
imul eax, dword [0x836b2c]
movsx ecx, cx
add eax, ecx
mov ecx, dword [esp + 0x80]
lea eax, [eax + eax*4]
shl eax, 4
mov dword [eax + edx + 0x38], ecx
lea edx, [esp + 0x30]
mov ecx, 0x81a800
push edx
call fcn.005453b0
mov ecx, dword [esp + 0x10]
mov dl, byte [ecx + 0x10]
mov byte [eax + 0x11c], 2
sub dl, bl
dec dl
mov byte [eax + 0x11b], dl
mov ecx, dword [0xa55c30]
inc ecx
inc ebx
cmp ebx, 4
mov dword [eax + 0x38], ecx
mov byte [eax + 0x11a], 0
jl 0x5708ec
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
movsx ecx, word [edi]
movsx eax, word [edx]
sub eax, ecx
inc esi
sub eax, ebx
sub eax, 5
cmp esi, eax
jl 0x5708ea
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x64
ret 0xc