Function at 0x576cc0
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xac
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, 0xfffffffb
dec edi
mov dword [ebp - 0x18], edx
cmp eax, edi
jbe 0x576cf4
lea edx, [edi + edi]
jmp 0x576ce8
cmp eax, edi
jbe 0x576cf4
neg eax
test eax, eax
jns 0x576ce4
add eax, edx
cmp eax, edi
ja 0x576ce8
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
imul eax, ebx
lea eax, [edx + eax*4]
mov dword [ebp - 0x20], eax
mov eax, 0xfffffffc
cmp eax, edi
jbe 0x576d21
lea edx, [edi + edi]
jmp 0x576d15
cmp eax, edi
jbe 0x576d21
neg eax
test eax, eax
jns 0x576d11
add eax, edx
cmp eax, edi
ja 0x576d15
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
imul eax, edx
lea esi, [ecx + eax*4]
mov eax, 0xfffffffd
cmp eax, edi
mov dword [ebp - 0x24], esi
jbe 0x576d50
lea edx, [edi + edi]
jmp 0x576d44
cmp eax, edi
jbe 0x576d50
neg eax
test eax, eax
jns 0x576d40
add eax, edx
cmp eax, edi
ja 0x576d44
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x14]
imul eax, esi
lea eax, [ebx + eax*4]
mov dword [ebp - 0x28], eax
mov eax, 0xfffffffe
cmp eax, edi
jbe 0x576d80
lea edx, [edi + edi]
jmp 0x576d74
cmp eax, edi
jbe 0x576d80
neg eax
test eax, eax
jns 0x576d70
add eax, edx
cmp eax, edi
ja 0x576d74
mov dword [ebp - 0x1c], 0xfffffffc
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x14]
imul eax, esi
cmp dword [ebp - 0x1c], ecx
lea edx, [ebx + eax*4]
mov dword [ebp - 0x2c], edx
jge 0x5770d9
lea eax, [edi + edi]
mov dword [ebp - 0x7c], eax
nop
lea esi, [esi]
mov ecx, dword [ebp - 0x1c]
add ecx, 3
cmp ecx, edi
mov dword [ebp - 0x70], ecx
mov eax, ecx
jbe 0x576dce
nop
neg eax
test eax, eax
js 0x5770e4
cmp eax, edi
ja 0x576dc0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x14]
imul eax, ecx
lea ebx, [esi + eax*4]
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x1c]
add ebx, 4
cmp ebx, edi
mov eax, ebx
jbe 0x576e00
lea edx, [edi + edi]
jmp 0x576df4
cmp eax, edi
jbe 0x576e00
neg eax
test eax, eax
jns 0x576df0
add eax, edx
cmp eax, edi
ja 0x576df4
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x14]
imul eax, ecx
lea edx, [esi + eax*4]
mov dword [ebp - 0x34], edx
rdtsc
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x70], eax
mov dword [ebp - 0x3c], edx
jb 0x5772a0
cmp ebx, dword [ebp + 8]
jb 0x577290
cmp dword [ebp - 0x18], 0x190
jle 0x576f00
rdtsc
mov dword [ebp - 0x48], eax
mov ebx, dword [0x76d770]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x74], ebx
dec ebx
jle 0x5772c1
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x74]
sub ebx, dword [ebp - 0x40]
mov dword [esp + 8], eax
sbb esi, dword [ebp - 0x3c]
mov dword [ebp - 0x50], ebx
mov ebx, dword [0x76d760]
mov dword [ebp - 0x4c], esi
mov esi, dword [0x76d764]
mov edx, ebx
shl edx, 3
mov dword [esp], edx
mov ecx, esi
cdq
shld ecx, ebx, 3
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edx
call fcn.006724b0
cmp dword [ebp - 0x4c], edx
jb 0x576ea6
ja 0x5771be
cmp dword [ebp - 0x50], eax
jae 0x5771be
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
sub dword [ebp - 0x48], edx
mov edx, 0x40000000
sbb dword [ebp - 0x44], ecx
mov ecx, dword [0x76d780]
add ebx, dword [ebp - 0x48]
adc esi, dword [ebp - 0x44]
inc dword [ebp - 0x74]
mov dword [0x76d760], ebx
mov eax, dword [ebp - 0x74]
mov dword [0x76d764], esi
mov dword [0x76d770], eax
mov eax, dword [ebp - 0x74]
add eax, ecx
mov dword [ebp - 0x84], eax
mov eax, edx
cdq
idiv dword [ebp - 0x84]
test edx, edx
je 0x5771ec
lea esi, [esi]
lea edi, [edi]
rdtsc
mov dword [ebp - 0x58], eax
mov esi, dword [ebp + 8]
cmp dword [ebp - 0x70], esi
mov dword [ebp - 0x54], edx
jae 0x576f33
xor edx, edx
jmp 0x576f2e
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
mov esi, dword [eax + edx*4]
mov ebx, dword [ecx + edx*4]
add esi, ebx
mov ebx, dword [ebp - 0x30]
lea eax, [esi + esi*2]
sar eax, 1
sub dword [ebx + edx*4], eax
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x576f14
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
add esi, 2
mov dword [ebp - 0x6c], esi
cmp esi, edx
jae 0x576f90
xor ebx, ebx
cmp ebx, dword [ebp - 0x18]
jge 0x576f90
mov esi, 0x66666667
nop
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
mov ecx, dword [eax + ebx*4]
mov eax, dword [edx + ebx*4]
mov edx, dword [ebp - 0x28]
shl ecx, 6
add eax, dword [edx + ebx*4]
shl eax, 2
sub ecx, eax
add ecx, 0x28000028
mov eax, ecx
sar ecx, 0x1f
imul esi
sar edx, 5
sub edx, ecx
mov ecx, dword [ebp - 0x2c]
sub edx, 0x800000
mov dword [ecx + ebx*4], edx
inc ebx
cmp ebx, dword [ebp - 0x18]
jl 0x576f50
mov esi, esi
mov ebx, dword [ebp - 0x1c]
inc ebx
cmp ebx, dword [ebp + 8]
jae 0x576fba
xor edx, edx
jmp 0x576fb5
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi + edx*4]
mov ebx, dword [ecx + edx*4]
mov esi, dword [ebp - 0x28]
add eax, ebx
add dword [esi + edx*4], eax
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x576fa0
mov edx, dword [ebp + 8]
cmp dword [ebp - 0x1c], edx
jae 0x576fe7
xor edx, edx
jmp 0x576fe2
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov esi, dword [eax + edx*4]
mov ebx, dword [ecx + edx*4]
add esi, ebx
mov ebx, dword [ebp - 0x24]
lea eax, [esi + esi*2 + 4]
sar eax, 3
add dword [ebx + edx*4], eax
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x576fc6
cmp dword [ebp - 0x18], 0x190
jle 0x5770b0
rdtsc
mov dword [ebp - 0x5c], edx
mov edx, dword [0x76d7a0]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x78], edx
dec edx
jle 0x5772b0
mov ebx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x78]
sub ebx, dword [ebp - 0x58]
mov dword [esp + 8], eax
sbb esi, dword [ebp - 0x54]
mov dword [ebp - 0x68], ebx
mov ebx, dword [0x76d790]
mov dword [ebp - 0x64], esi
mov esi, dword [0x76d794]
mov edx, ebx
shl edx, 3
mov dword [esp], edx
mov ecx, esi
cdq
shld ecx, ebx, 3
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edx
call fcn.006724b0
cmp dword [ebp - 0x64], edx
jb 0x577061
ja 0x5770f0
cmp dword [ebp - 0x68], eax
jae 0x5770f0
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
sub dword [ebp - 0x60], edx
mov edx, 0x40000000
sbb dword [ebp - 0x5c], ecx
mov ecx, dword [0x76d7b0]
add ebx, dword [ebp - 0x60]
adc esi, dword [ebp - 0x5c]
inc dword [ebp - 0x78]
mov dword [0x76d790], ebx
mov eax, dword [ebp - 0x78]
mov dword [0x76d794], esi
mov dword [0x76d7a0], eax
mov eax, dword [ebp - 0x78]
add eax, ecx
mov dword [ebp - 0x90], eax
mov eax, edx
cdq
idiv dword [ebp - 0x90]
test edx, edx
je 0x57711a
lea esi, [esi]
mov esi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x34]
cmp ebx, esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x1c], ebx
jl 0x576db0
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x7c]
add eax, edx
cmp eax, edi
jmp 0x576dcc
mov ecx, dword [0x76d7b0]
mov edx, 0x40000000
mov eax, dword [ebp - 0x78]
inc ecx
add eax, ecx
mov dword [ebp - 0x90], eax
mov eax, edx
cdq
idiv dword [ebp - 0x90]
mov dword [0x76d7b0], ecx
test edx, edx
jne 0x5770b0
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp - 0x78]
mov edx, ebx
shl edx, 2
mov eax, str.vertical_decompose97i
mov dword [ebp - 0x90], edx
mov dword [esp + 0x18], ecx
mov ecx, esi
shld ecx, ebx, 2
add dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ecx
mov dword [esp + 0x14], eax
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x78]
adc dword [ebp - 0x8c], esi
cdq
mov esi, dword [ebp - 0x8c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
shld esi, ebx, 1
add ebx, ebx
mov dword [ebp - 0x90], ebx
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x8c], esi
mov ecx, dword [ebp - 0x8c]
mov ebx, 0x6a55d8
mov esi, 2
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.006724b0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.0045dc30
jmp 0x5770b0
mov ecx, dword [0x76d780]
mov edx, 0x40000000
mov eax, dword [ebp - 0x74]
inc ecx
add eax, ecx
mov dword [ebp - 0x84], eax
mov eax, edx
cdq
idiv dword [ebp - 0x84]
mov dword [0x76d780], ecx
test edx, edx
jne 0x576f00
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp - 0x74]
mov edx, ebx
shl edx, 2
mov eax, str.horizontal_decompose97i
mov dword [ebp - 0x90], edx
mov dword [esp + 0x18], ecx
mov ecx, esi
shld ecx, ebx, 2
add dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ecx
mov dword [esp + 0x14], eax
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x74]
adc dword [ebp - 0x8c], esi
cdq
mov esi, dword [ebp - 0x8c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
shld esi, ebx, 1
add ebx, ebx
mov dword [ebp - 0x90], ebx
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x8c], esi
mov ecx, dword [ebp - 0x8c]
mov ebx, 0x6a55d8
mov esi, 2
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.006724b0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], 0
call fcn.0045dc30
jmp 0x576f00
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
call fcn.00576a30
jmp 0x576e2c
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
call fcn.00576a30
jmp 0x576e23
mov ebx, dword [0x76d790]
mov esi, dword [0x76d794]
jmp 0x577061
mov ebx, dword [0x76d760]
mov esi, dword [0x76d764]
jmp 0x576ea6