Function at 0x5765c0
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9c
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, 0xfffffffd
dec edx
mov dword [ebp - 0x64], edx
cmp eax, edx
jbe 0x5765f8
add edx, edx
jmp 0x5765eb
cmp eax, dword [ebp - 0x64]
jbe 0x5765f8
neg eax
test eax, eax
jns 0x5765e6
add eax, edx
cmp eax, dword [ebp - 0x64]
ja 0x5765eb
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
imul eax, edx
lea eax, [ecx + eax*4]
mov dword [ebp - 0x20], eax
mov eax, 0xfffffffe
cmp eax, dword [ebp - 0x64]
jbe 0x57662a
mov edx, dword [ebp - 0x64]
add edx, edx
jmp 0x57661d
cmp eax, dword [ebp - 0x64]
jbe 0x57662a
neg eax
test eax, eax
jns 0x576618
add eax, edx
cmp eax, dword [ebp - 0x64]
ja 0x57661d
mov dword [ebp - 0x1c], 0xfffffffe
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x14]
imul eax, ecx
cmp dword [ebp - 0x1c], ebx
lea esi, [edi + eax*4]
mov dword [ebp - 0x24], esi
jge 0x5768c1
mov eax, dword [ebp - 0x64]
add eax, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], eax
mov esi, esi
lea edi, [edi]
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x64]
inc edx
mov dword [ebp - 0x68], edx
cmp edx, ebx
mov eax, edx
jbe 0x57667f
neg eax
test eax, eax
js 0x5768d0
cmp eax, dword [ebp - 0x64]
ja 0x576670
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
imul eax, edx
mov edi, dword [ebp - 0x64]
add ecx, 2
mov dword [ebp - 0x6c], ecx
cmp ecx, edi
lea eax, [ebx + eax*4]
mov dword [ebp - 0x28], eax
mov eax, ecx
jbe 0x5766af
neg eax
test eax, eax
js 0x5768e0
cmp eax, dword [ebp - 0x64]
ja 0x5766a0
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
imul eax, ebx
lea eax, [ecx + eax*4]
mov dword [ebp - 0x2c], eax
rdtsc
mov dword [ebp - 0x38], eax
mov edi, dword [ebp + 8]
cmp dword [ebp - 0x68], edi
mov dword [ebp - 0x34], edx
jb 0x5769f3
mov edx, dword [ebp + 8]
cmp dword [ebp - 0x6c], edx
jb 0x5769e3
rdtsc
mov dword [ebp - 0x40], eax
mov edi, dword [0x76d710]
mov dword [ebp - 0x3c], edx
cmp edi, 1
jle 0x5768fe
sub eax, dword [ebp - 0x38]
mov ecx, edi
mov dword [esp + 8], edi
mov ebx, dword [0x76d700]
mov esi, dword [0x76d704]
sbb edx, dword [ebp - 0x34]
sar ecx, 0x1f
mov dword [ebp - 0x48], eax
mov eax, ebx
shl eax, 3
mov dword [ebp - 0x44], edx
mov edx, esi
shld edx, ebx, 3
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.006724b0
cmp dword [ebp - 0x44], edx
jb 0x576750
ja 0x576a15
cmp dword [ebp - 0x48], eax
jae 0x576a15
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov ecx, dword [0x76d720]
sub dword [ebp - 0x40], eax
sbb dword [ebp - 0x3c], edx
add ebx, dword [ebp - 0x40]
adc esi, dword [ebp - 0x3c]
inc edi
mov dword [0x76d700], ebx
mov dword [0x76d710], edi
mov dword [0x76d704], esi
lea eax, [edi + ecx]
mov edx, 0x40000000
mov dword [ebp - 0x7c], eax
mov eax, edx
cdq
idiv dword [ebp - 0x7c]
test edx, edx
je 0x57690f
rdtsc
mov dword [ebp - 0x50], eax
mov esi, dword [ebp + 8]
cmp dword [ebp - 0x68], esi
mov dword [ebp - 0x4c], edx
jae 0x5767c4
xor edx, edx
jmp 0x5767bf
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
mov eax, dword [esi + edx*4]
mov ebx, dword [ecx + edx*4]
add eax, ebx
sar eax, 1
sub dword [edi + edx*4], eax
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x5767a8
mov edx, dword [ebp + 8]
cmp dword [ebp - 0x1c], edx
jae 0x5767f0
xor edx, edx
jmp 0x5767eb
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
mov eax, dword [esi + edx*4]
mov ebx, dword [ecx + edx*4]
add eax, ebx
add eax, 2
sar eax, 2
add dword [edi + edx*4], eax
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x5767d0
rdtsc
mov dword [ebp - 0x58], eax
mov edi, dword [0x76d740]
mov dword [ebp - 0x54], edx
cmp edi, 1
jle 0x5768ed
sub eax, dword [ebp - 0x50]
mov ecx, edi
mov dword [esp + 8], edi
mov ebx, dword [0x76d730]
mov esi, dword [0x76d734]
sbb edx, dword [ebp - 0x4c]
sar ecx, 0x1f
mov dword [ebp - 0x60], eax
mov eax, ebx
shl eax, 3
mov dword [ebp - 0x5c], edx
mov edx, esi
shld edx, ebx, 3
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.006724b0
cmp dword [ebp - 0x5c], edx
jb 0x576860
ja 0x576a03
cmp dword [ebp - 0x60], eax
jae 0x576a03
mov esi, esi
lea edi, [edi]
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [0x76d750]
sub dword [ebp - 0x58], eax
sbb dword [ebp - 0x54], edx
add ebx, dword [ebp - 0x58]
adc esi, dword [ebp - 0x54]
inc edi
mov dword [0x76d730], ebx
mov dword [0x76d740], edi
mov dword [0x76d734], esi
lea eax, [edi + ecx]
mov edx, 0x40000000
mov dword [ebp - 0x7c], eax
mov eax, edx
cdq
idiv dword [ebp - 0x7c]
test edx, edx
je 0x576979
mov ebx, dword [ebp - 0x6c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], ebx
mov edx, dword [ebp - 0x2c]
cmp ebx, edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edx
jl 0x576660
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [ebp - 0x70]
add eax, esi
cmp eax, dword [ebp - 0x64]
jmp 0x57667d
mov esi, dword [ebp - 0x74]
add eax, esi
cmp eax, dword [ebp - 0x64]
jmp 0x5766ad
mov ebx, dword [0x76d730]
mov esi, dword [0x76d734]
jmp 0x576860
mov ebx, dword [0x76d700]
mov esi, dword [0x76d704]
jmp 0x576750
mov dword [esp + 0x1c], ecx
mov eax, ebx
mov edx, esi
shld edx, ebx, 2
mov ecx, str.horizontal_decompose53i
mov dword [esp + 0x18], edi
shl eax, 2
add eax, ebx
adc edx, esi
mov ebx, edi
sar ebx, 0x1f
shld edx, eax, 1
add eax, eax
mov esi, 2
mov dword [esp + 8], edi
mov edi, 0x6a55d8
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.006724b0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.0045dc30
jmp 0x576794
mov dword [esp + 0x1c], ecx
mov eax, ebx
mov edx, esi
shld edx, ebx, 2
mov ecx, str.vertical_decompose53i
mov dword [esp + 0x18], edi
shl eax, 2
add eax, ebx
adc edx, esi
mov esi, edi
sar esi, 0x1f
shld edx, eax, 1
add eax, eax
mov ebx, 0x6a55d8
mov dword [esp + 8], edi
mov edi, 2
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.006724b0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], 0
call fcn.0045dc30
jmp 0x5768a4
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
call fcn.00576460
jmp 0x5766de
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
call fcn.00576460
jmp 0x5766d2
mov ecx, dword [0x76d750]
inc ecx
mov dword [0x76d750], ecx
jmp 0x57688b
mov ecx, dword [0x76d720]
inc ecx
mov dword [0x76d720], ecx
jmp 0x57677b