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

Disassembly:
sub esp, 0x84
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x40], ebp
mov ebx, dword [ebp + 0x14]
and ebx, 0xf
test ebx, 0xfffffffe
jne 0x5d60ef
call fcn.0053b8d0
cmp dword [0xa5672c], eax
jb 0x5d67e7
mov ecx, dword [0x821c8c]
lea eax, [esp + 0x4c]
push eax
push ebp
call fcn.00697ec0
test al, al
je 0x5d67e7
mov ecx, dword [0xa255a0]
mov eax, dword [ecx]
test ah, 0x10
je 0x5d6128
push ebp
mov ecx, 0x81a800
call fcn.00565060
test al, al
jne 0x5d67e7
mov edx, dword [esp + 0x4c]
mov ecx, dword [0x821950]
mov eax, dword [esp + 0x50]
add edx, 0xffffff80
mov dword [esp + 0x74], edx
mov edx, dword [0x821954]
mov esi, dword [0x821c7c]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x82195c]
mov dword [esp + 0x88], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x90], ecx
add eax, 0xffffffc0
mov edi, 0x7f
movsx ecx, byte [edx + 0x7d2da8]
mov dword [esp + 0x78], eax
mov eax, dword [0x821958]
cmp ecx, 0x40
mov dword [esp + 0x30], esi
mov dword [esp + 0x7c], 0xff
mov dword [esp + 0x80], edi
mov dword [esp + 0x8c], eax
jge 0x5d61af
mov eax, dword [ebp + 0x10]
imul eax, ecx
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov ecx, eax
mov eax, dword [ecx*4 + 0xa5ad20]
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x34], eax
call dword [edx + 0x74]
mov esi, eax
xor eax, eax
mov ecx, 0xff
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], ecx
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x38]
push eax
lea edx, [esp + 0x17]
push ecx
lea eax, [esp + 0x5c]
push edx
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x70]
push eax
push ecx
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x88]
push edx
push eax
lea edx, [esp + 0xa0]
mov dword [esp + 0x40], esi
mov byte [esp + 0x2f], 0
mov dword [esp + 0x7c], edi
mov dword [esp + 0x8c], edi
call fcn.00760950
test al, al
je 0x5d67e7
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov ecx, dword [0x7d2da4]
xor edx, edx
cmp ebx, edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
jne case.default.0x5d6261
cmp ecx, 3
ja case.default.0x5d6261
jmp dword [ecx*4 + 0x5d67f4]
mov ecx, dword [0xa5aeb8]
cmp ecx, edx
je 0x5d6292
mov edx, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x64]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.00783b82
add esp, 0x1c
jmp 0x5d67d5
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.00783951
add esp, 0x18
jmp 0x5d67d5
mov ecx, dword [0xa5aeb8]
cmp ecx, edx
je 0x5d62db
mov edx, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x64]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.00783cc0
add esp, 0x1c
jmp 0x5d67d5
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.00783874
add esp, 0x18
jmp 0x5d67d5
mov ecx, dword [0xa5aeb8]
cmp ecx, edx
je 0x5d6324
mov edx, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x64]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.00783a40
add esp, 0x1c
jmp 0x5d67d5
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.007836ba
add esp, 0x18
jmp 0x5d67d5
mov ecx, dword [0xa5aeb8]
cmp ecx, edx
je 0x5d636d
mov edx, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x64]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.00783e00
add esp, 0x1c
jmp 0x5d67d5
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push ecx
push edx
push esi
push 0x100
push edi
push eax
call fcn.00783797
add esp, 0x18
jmp 0x5d67d5
mov eax, dword [ebp + 0x14]
test al, 1
je 0x5d64e0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x2c], edx
cmp eax, edx
jle 0x5d67d5
mov ecx, dword [esp + 0x5c]
cmp ecx, edx
mov dword [esp + 0x28], edx
jle 0x5d64ab
mov edx, dword [esp + 0x14]
mov al, byte [edx]
inc edx
test al, al
mov byte [esp + 0x20], al
mov dword [esp + 0x14], edx
je 0x5d6495
mov ecx, dword [esp + 0x20]
mov si, word [edi]
mov ebp, dword [0x83b2c8]
mov edx, dword [0x83b2cc]
and ecx, 0xff
mov eax, 0x100
sub eax, ecx
mov ebx, esi
mov cx, bp
shr bx, cl
mov ecx, edx
shl bl, cl
mov cx, word [0x83b2d8]
mov byte [esp + 0x44], bl
mov ebx, esi
shr bx, cl
mov ecx, dword [0x83b2dc]
shl bl, cl
mov cx, word [0x83b2d0]
mov byte [esp + 0x45], bl
mov ebx, esi
mov esi, dword [0x83b2d4]
shr bx, cl
mov ecx, esi
shl bl, cl
mov ecx, dword [0x83b2dc]
mov byte [esp + 0x46], bl
mov ebx, dword [esp + 0x45]
and ebx, 0xff
imul ebx, eax
sar ebx, 8
sar ebx, cl
mov ecx, dword [0x83b2d8]
shl ebx, cl
mov ecx, esi
mov esi, ebx
mov ebx, dword [esp + 0x46]
and ebx, 0xff
imul ebx, eax
sar ebx, 8
sar ebx, cl
mov ecx, dword [0x83b2d0]
shl ebx, cl
mov ecx, edx
or esi, ebx
mov ebx, dword [esp + 0x44]
and ebx, 0xff
imul ebx, eax
sar ebx, 8
sar ebx, cl
mov ecx, ebp
shl ebx, cl
or esi, ebx
mov word [edi], si
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add edi, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5d63b7
xor edx, edx
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x60]
add eax, 0x100
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
add edi, esi
inc eax
mov dword [esp + 0x18], edi
cmp eax, ebx
mov dword [esp + 0x2c], eax
jl 0x5d63ab
jmp 0x5d67d5
test al, 0xe
je 0x5d666b
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], edx
cmp eax, edx
jle 0x5d67d5
mov ecx, dword [esp + 0x5c]
cmp ecx, edx
mov dword [esp + 0x2c], edx
jle 0x5d6636
mov edx, dword [esp + 0x14]
mov al, byte [edx]
inc edx
test al, al
mov byte [esp + 0x20], al
mov dword [esp + 0x14], edx
je 0x5d6620
mov ax, word [edi]
mov ebx, dword [0x83b2c8]
mov edx, eax
mov cx, bx
shr dx, cl
mov ecx, dword [0x83b2cc]
mov ebp, dword [esp + 0x20]
and ebp, 0xff
add ebp, 0x100
shl dl, cl
mov cx, word [0x83b2d8]
mov byte [esp + 0x44], dl
mov edx, eax
shr dx, cl
mov ecx, dword [0x83b2dc]
shl dl, cl
mov cx, word [0x83b2d0]
shr ax, cl
mov ecx, dword [0x83b2d4]
mov byte [esp + 0x45], dl
shl al, cl
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0x14]
mov byte [esp + 0x46], al
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x45]
mov edx, dword [esp + 0x46]
and eax, 0xff
and esi, 0xff
and edx, 0xff
test cl, 2
jne 0x5d65b5
imul eax, ebp
sar eax, 8
cmp eax, 0xff
jle 0x5d65b5
mov eax, 0xff
test cl, 4
jne 0x5d65cd
imul esi, ebp
sar esi, 8
cmp esi, 0xff
jle 0x5d65cd
mov esi, 0xff
test cl, 8
jne 0x5d65e5
imul edx, ebp
sar edx, 8
cmp edx, 0xff
jle 0x5d65e5
mov edx, 0xff
mov ecx, dword [0x83b2cc]
sar eax, cl
mov ecx, ebx
shl eax, cl
mov ecx, dword [0x83b2dc]
sar esi, cl
mov ecx, dword [0x83b2d8]
shl esi, cl
mov ecx, dword [0x83b2d4]
sar edx, cl
mov ecx, dword [0x83b2d0]
or eax, esi
mov esi, dword [esp + 0x24]
shl edx, cl
or eax, edx
mov word [edi], ax
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x2c]
add edi, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x5d6508
xor edx, edx
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x60]
add eax, 0x100
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
add edi, esi
inc eax
mov dword [esp + 0x18], edi
cmp eax, ebx
mov dword [esp + 0x28], eax
jl 0x5d64fc
jmp 0x5d67d5
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], edx
cmp eax, edx
jle 0x5d67d5
mov ecx, dword [esp + 0x5c]
cmp ecx, edx
mov dword [esp + 0x2c], edx
jle 0x5d67a5
mov edx, dword [esp + 0x14]
mov al, byte [edx]
inc edx
test al, al
mov byte [esp + 0x20], al
mov dword [esp + 0x14], edx
je 0x5d678f
mov si, word [edi]
mov ebp, dword [0x83b2c8]
mov ebx, dword [0x83b2cc]
mov eax, esi
mov cx, bp
mov edx, dword [esp + 0x20]
shr ax, cl
mov ecx, ebx
and edx, 0xff
add edx, 0x100
shl al, cl
mov cx, word [0x83b2d8]
mov byte [esp + 0x44], al
mov eax, esi
shr ax, cl
mov ecx, dword [0x83b2dc]
shl al, cl
mov cx, word [0x83b2d0]
mov byte [esp + 0x45], al
mov eax, esi
shr ax, cl
mov ecx, dword [0x83b2d4]
shl al, cl
mov byte [esp + 0x46], al
mov eax, dword [esp + 0x46]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x45]
and eax, 0xff
and esi, 0xff
and ecx, 0xff
imul eax, edx
imul esi, edx
imul ecx, edx
sar eax, 8
sar esi, 8
sar ecx, 8
cmp eax, 0xff
jle 0x5d673c
mov eax, 0xff
cmp ecx, 0xff
mov edx, 0xff
jg 0x5d674b
mov edx, ecx
cmp esi, 0xff
jle 0x5d6758
mov esi, 0xff
mov ecx, ebx
sar esi, cl
mov ecx, ebp
shl esi, cl
mov ecx, dword [0x83b2dc]
sar edx, cl
mov ecx, dword [0x83b2d8]
shl edx, cl
mov ecx, dword [0x83b2d4]
sar eax, cl
mov ecx, dword [0x83b2d0]
or esi, edx
shl eax, cl
or esi, eax
mov word [edi], si
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
add edi, 2
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x5d668b
xor edx, edx
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x60]
add eax, 0x100
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
add edi, esi
inc eax
mov dword [esp + 0x18], edi
cmp eax, ebx
mov dword [esp + 0x28], eax
jl 0x5d667f
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
call dword [edx + 0x60]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x60]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret