Function at 0xa85ec0
Capabilities:
Print debug messages

Disassembly:
xor esi, esi
cmp si, 3
mov dword [ebp - 0x20], esi
jae case.0xa85e51.0
mov ecx, esi
and ecx, 0xffff
mov eax, ecx
imul eax, ecx
imul eax, ecx
imul eax, ecx
add eax, 7
sub eax, 7
je 0xa85992
dec eax
je 0xa8590d
sub eax, 0xf
je 0xa859b9
inc esi
jmp 0xa858d2
mov ecx, dword [ebp - 0x8e]
mov edi, 5
and ecx, 0xffff
xor ebx, ebx
mov eax, ecx
cdq
idiv edi
mov eax, ecx
mov ecx, 3
cmp edx, 2
cdq
setne bl
idiv ecx
dec edx
neg edx
sbb edx, edx
neg edx
or ebx, edx
je 0xa85983
mov dx, word [ebp - 0x90]
mov word [ebp - 0x92], 1
mov word [ebp - 0x96], dx
nop
not esi
not esi
ja 0xa8597a
pushf
xchg edi, edi
sub esp, 0
popf
lea ebx, [ebx + 0x1b0]
lea ebx, [ebx - 0x1b0]
xchg edx, ecx
xchg edx, ecx
jbe 0xa8597a
mov eax, 0x46e0758b
mov esi, dword [ebp - 0x20]
inc esi
jmp 0xa858d2
mov word [ebp - 0x92], 0
inc esi
jmp 0xa858d2
inc word [ebp - 0x8e]
test dword [esp], ebx
jo 0xa859b3
pushf
stc
jle 0xa859a3
shl eax, 0
jg 0xa859a8
popf
jno 0xa859ac
xchg ecx, ecx
jne 0xa859b0
jno 0xa859b3
lcall 0xffff, 0xff19e946
inc esi
jmp 0xa858d2
shr esp, 0
cmp eax, dword [esp]
nop
or eax, eax
jge case.0xa85db9.0
pushf
mov esp, esp
xor ebx, 0x4c0e
xor ebx, 0x4c0e
and ecx, ecx
cmp edx, 0x65e1
popf
mov esp, esp
jmp 0xa859e2
lea esi, [esi]
jl case.0xa85db9.0
mov ebp, 0x8366d233
cli
or byte [ecx - 0x7cf01fab], cl
test al, 7
add byte [eax], al
xor edx, edx
cmp dx, 8
mov dword [ebp - 0x20], edx
jae 0xa8619e
mov ecx, edx
and ecx, 0xffff
lea eax, [ecx + 1]
imul eax, ecx
cmp eax, 0x38
ja case.0xa85a15.7
xor ecx, ecx
mov cl, byte [eax + 0xa861fc]
jmp dword [ecx*4 + 0xa861d8]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 4], eax
and esp, 0xffffffff
jbe 0xa85a27
mov esi, esi
ror ebx, 0x1b
ror ebx, 5
jno 0xa85a3b
lea esp, [esp]
jmp 0xa85a36
nop
jo 0xa85a3b
adc edi, 0x8910e8c1
inc ebp
sar byte [ebx], 1
cmp al, 0x24
shr eax, 0x10
mov dword [ebp - 0x30], eax
cmp edi, dword [esp]
jg 0xa85a51
jle 0xa85a48
jo 0xa85a4a
mov eax, eax
jo 0xa85a4e
jle 0xa85a51
mov edi, 0x8b95eb42
test dword [eax - 1], ecx
invalid
inc edx
jmp 0xa859e9
mov eax, dword [ebp - 0xb8]
imul eax, dword [ebp - 0xc]
and eax, 0xffff
mov dword [ebp - 0xb0], eax
mov edi, edi
jo 0xa85a6d
js 0xa85a80
pushf
rol ebx, 0xe
rol ebx, 0x12
popf
jo 0xa85a7b
mov edi, edi
jns 0xa85a80
jmp 0xc43c6
inc edx
jmp 0xa859e9
mov eax, dword [ebp - 4]
shr eax, 0x10
mov dword [ebp - 0xb4], eax
nop
neg edi
neg edi
ror esp, 0
ja 0xa85aa3
lea esp, [esp]
jbe 0xa85aa3
sub eax, 0xfc458b3a
mov eax, dword [ebp - 4]
and eax, 0xffff
inc edx
mov dword [ebp - 0xb8], eax
jmp 0xa859e9
mov eax, dword [ebp - 0xb4]
test eax, eax
je case.0xa85a15.7
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xb0]
imul eax, dword [ebp - 0xb4]
and eax, 0xffff
add ecx, eax
inc edx
mov dword [ebp - 0xb0], ecx
jmp 0xa859e9
push 0x5a
lea ecx, [ebp - 0xc]
push 1
push ecx
call fcn.00a778b0
test ecx, 0x272a
jnp 0xa85b05
jg 0xa85aff
jno 0xa85b01
jp 0xa85b05
ljmp 0xf855:0x8d1d6a69
push 0x1d
lea edx, [ebp - 8]
push 0x4e
push edx
call fcn.00a778b0
mov edx, dword [ebp - 0x20]
add esp, 0x18
inc edx
jmp 0xa859e9
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xb0]
imul eax, dword [ebp - 0xb8]
and ecx, 0xffff
shl ecx, 0x10
inc edx
lea eax, [eax + ecx + 1]
mov dword [ebp - 0x30], eax
jmp 0xa859e9
mov eax, dword [ebp - 0x92]
and eax, 0xffff
and eax, 0x80000001
jns 0xa85b5b
dec eax
or eax, 0xfffffffe
inc eax
sub eax, 0
je 0xa85b9d
dec eax
je 0xa85f38
inc edx
jmp 0xa859e9
mov ecx, dword [ebp - 0x30]
and ecx, 0x7fff
mov dword [ebp - 0x30], ecx
lea esp, [esp]
sub esi, 0
test esp, 0x16a4
ror eax, 0x15
rol eax, 0x15
jge 0xa85b94
jge 0xa85b8f
je 0xa85b91
jl 0xa85b94
add eax, 0x42dc4d89
mov dword [ebp - 0x24], ecx
inc edx
jmp 0xa859e9
mov ecx, dword [ebp - 0x24]
mov esi, 0xb
and ecx, 0xffff
xor ebx, ebx
mov eax, ecx
cdq
idiv esi
mov eax, ecx
mov ecx, 7
cmp edx, 5
cdq
sete bl
idiv ecx
xor eax, eax
cmp edx, 2
sete al
or ebx, eax
je 0xa85bea
mov cx, word [ebp - 0x90]
mov word [ebp - 0x92], 1
mov word [ebp - 0x96], cx
jmp case.0xa85db9.0
mov eax, dword [ebp - 0xa6]
and eax, 0xffff
cmp eax, 9
ja case.default.0xa85bfe
jmp dword [eax*4 + 0xa86238]
nop
clc
cmp edx, 0x1601
jl 0xa85c1d
xchg edx, esi
xchg edx, esi
jb 0xa85c15
xchg edi, edi
jo 0xa85c19
jge 0xa85c1d
mov esp, 0xf0558b21
mov edx, dword [ebp - 0x10]
mov dword [0xa70d10], edx
jmp 0xa85d98
nop
xor esp, 0
test edi, edx
lea ebx, [ebx + 0x1706]
lea ebx, [ebx - 0x1706]
ja 0xa85c4a
jp 0xa85c41
jbe 0xa85c43
jle 0xa85c45
jno 0xa85c47
jbe 0xa85c4a
call 0xa7b56cef
add byte [ebx - 0x58f68bf3], cl
add bh, dh
fmul dword [ebp + 0x15894114]
je 0xa85c67
mov eax, dword [0xa70d10]
mov ecx, dword [0xa70974]
neg eax
lea edx, [ecx + eax*2]
mov dword [0xa70974], edx
jmp 0xa85d98
cmpsd dword [esi], dword es:[edi]
add cl, ch
xor eax, dword [ecx]
add byte [eax], al
shl esp, 0
xor eax, dword [esp]
add byte [ebx], dh
add al, 0x24
xor eax, dword [esp]
std
cld
jp 0xa85c78
jmp 0xa85c74
jnp 0xa85c78
mov edi, 0x1ae99079
add dword [eax], eax
add byte [eax - 0x7cdbc37b], dl
nop
test dword [esp], edi
invalid
int3
nop
jmp 0xa85d98
nop
test dword [esp], edi
or esp, 0
rol esp, 0
shl esp, 0
jns 0xa85c98
pushf
jge 0xa85c91
popf
jns 0xa85c95
js 0xa85c98
mov esp, 0xff78858d
invalid
lea eax, [ebp - 0x88]
lea ecx, [ebp - 0x1c]
push eax
push ecx
call fcn.00a889c0
add esp, 8
jmp 0xa85d98
nop
push 0xa73754
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ebx, [ebx + 0x12a5]
lea ebx, [ebx - 0x12a5]
xor ecx, 0
jge 0xa85cdd
pushf
mov esi, esi
cmp ecx, edx
rol edi, 0
popf
lea ebx, [ebx]
jl 0xa85cdd
or dword [ebx - 0x58f2e7eb], 0x40958900
invalid
mov edx, dword [0xa70d18]
mov dword [ebp - 0xc0], edx
ror esi, 0
js 0xa85d11
pushf
jge 0xa85cf2
popf
lea ebx, [ebx + 0x102f]
lea ebx, [ebx - 0x102f]
lea eax, [eax + 0x5450]
lea eax, [eax - 0x5450]
jo 0xa85d0e
jns 0xa85d11
lcall 0x8900, 0xa70d14a1
test dword [edi + edi*8 - 1], eax
push edi
invalid
mov eax, dword [0xa70d14]
mov dword [ebp - 0xbc], eax
test esp, 0x5cc7
cmp esi, dword [esp]
or ecx, 0
jg 0xa85d2a
ja 0xa85d38
mov ebx, ebx
mov esp, esp
jb 0xa85d32
xchg ecx, eax
xchg ecx, eax
jbe 0xa85d38
lcall 0xffff, 0x7993e8d8
call fcn.00a7d6d0
lea ecx, [ebp - 0x88]
push ecx
call fcn.00a7cde0
add esp, 4
jmp 0xa85d98
nop
jmp 0xa85d98
stc
xor esi, 0
jl 0xa85d57
ja 0xa85d59
jl case.default.0xa85bfe
pushf
cmp esi, dword [esp]
popf
xchg ecx, edx
xchg ecx, edx
jne 0xa85d68
jns 0xa85d6a
jge case.default.0xa85bfe
add eax, 0xcec190
nop
ror esi, 0
xchg esi, edx
xchg esi, edx
lea edx, [edx + 0x6b8]
lea edx, [edx - 0x6b8]
jb 0xa85d8f
jg 0xa85d85
jp 0xa85d87
xchg ebx, eax
xchg ebx, eax
jg 0xa85d8b
jae 0xa85d8f
mov ebx, 0xe8558b09
mov edx, dword [ebp - 0x18]
mov dword [0xa70d0c], edx
xor edi, edi
mov ecx, edi
and ecx, 0xffff
lea eax, [ecx + 3]
imul eax, ecx
cmp eax, 0x12
ja case.default.0xa85e51
xor ecx, ecx
mov cl, byte [eax + 0xa86274]
jmp dword [ecx*4 + 0xa86260]
inc word [ebp - 0xa6]
jae 0xa85dc9
add esi, dword [esp]
sub esi, dword [esp]
rol ecx, 0x16
ror ecx, 0x16
jge 0xa85de4
xchg esi, esi
lea esp, [esp]
jl 0xa85dde
jl 0xa85de0
jl 0xa85de4
call 0x14047bb
add byte [eax], al
jmp case.default.0xa85e51
nop
test dword [esp], ecx
mov ebx, ebx
js 0xa85df1
jp 0xa85df9
xchg edi, edi
jnp 0xa85df9
add eax, 0x40958b6b
invalid
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xbc]
push edx
lea ecx, [ebp - 0x88]
push eax
push ecx
call fcn.00a971c0
add esp, 0xc
jmp 0xa85d98
nop
push 0xa73744
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0xa85d98
mov dx, word [ebp - 0xa6]
cmp dx, word [ebp - 0x94]
jne case.default.0xa85e51
mov eax, dword [ebp - 0x8e]
mov ecx, 9
and eax, 0xffff
cdq
idiv ecx
cmp edx, 8
ja case.default.0xa85e51
jmp dword [edx*4 + 0xa86288]
mov word [ebp - 0x92], 1
js 0xa85e63
call fcn.00a85e68
add esp, 4
lea ecx, [ecx]
add ecx, 0x27
sub ecx, 0x27
jg case.default.0xa85e51
pushf
jae 0xa85e79
popf
jb 0xa85e7d
jle case.default.0xa85e51
mov ecx, 0xff836647
add al, 0xf
or byte [edi], 0xff
invalid
inc edi
cmp di, 4
jb 0xa85d9a
nop
shl ecx, 0
xchg esp, esp
jg 0xa85e93
or esi, 0
jno 0xa85ea7
pushf
cmp ecx, 0x6d6f
popf
jl 0xa85ea4
jo 0xa85ea7
ljmp 0xa7:0xd0c158b
mov edx, dword [0xa70d0c]
mov eax, dword [0xa70970]
lea ecx, [eax + edx*2]
mov dword [0xa70970], ecx
jmp 0xa85d98
jns 0xa85ec2
cmc
and esi, 0xffffffff
jne 0xa85edb
pushf
clc
add esp, 0
push esi
pop esi
cmp edi, ecx
popf
jl 0xa85ed6
mov esp, esp
je 0xa85edb
sub ebx, 0xccc127
jmp case.0xa85e51.0
ror esp, 0
jp 0xa85ee2
jno case.0xa85e51.0
pushf
neg ebx
neg ebx
and eax, 0xffffffff
mov ebx, ebx
popf
lea ebx, [ebx + 0x1fd5]
lea ebx, [ebx - 0x1fd5]
xchg edx, edx
ja 0xa85f01
jo case.0xa85e51.0
add eax, 0x37446890
cmpsd dword [esi], dword es:[edi]
add bh, bh
adc eax, sym.imp.KERNEL32.dll_OutputDebugStringA
nop
push 0xa73744
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esp, 0x36a4
inc edi
dec edi
jne 0xa85f2b
jp 0xa85f23
nop
jnp 0xa85f26
je 0xa85f2b
add eax, 0xd7eb090a
jmp case.0xa85e51.0
mov edx, edx
js 0xa85f36
jns 0xa85f33
jns 0xa85f36
sub eax, 0xc933cceb
jmp case.0xa85e51.0
xor ecx, ecx
mov dword [ebp - 0x20], ecx
and ecx, 0xffff
mov eax, ecx
imul eax, ecx
imul eax, ecx
cmp eax, 0xd8
ja case.0xa85f5e.7
xor edx, edx
mov dl, byte [eax + 0xa862cc]
jmp dword [edx*4 + 0xa862ac]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
and eax, 0xffff
and ecx, 0xffff
lea edx, [ecx + eax*4]
inc word [ebp + edx*2 - 0xac]
lea eax, [ebp + edx*2 - 0xac]
je 0xa85f8a
xor ecx, dword [esp]
xor ecx, dword [esp]
jp 0xa85fa7
pushf
ror esp, 0
jo 0xa85f99
cmp eax, 0x1fe7
jno 0xa85fa0
popf
jl 0xa85fa4
jnp 0xa85fa7
lcall 0xffff, 0x70858b66
jmp dword [esi - 0x77]
mov ax, word [ebp - 0x90]
mov word [ebp - 0x96], ax
jmp case.0xa85f5e.7
mov eax, dword [ebp - 0x24]
mov ecx, 3
and eax, 0xffff
cdq
idiv ecx
mov dword [ebp - 0x2c], edx
xor ebx, 0x57
xor ebx, 0x57
call 0xa85fd8
add esp, 4
jno 0xa85fdd
jle 0xa85fe5
lea esp, [esp]
jg 0xa85fe5
add eax, 0x155e9
add byte [ebx - 0x2dcc27bb], cl
mov eax, dword [ebp - 0x28]
xor edx, edx
jmp case.0xa85f5e.7
mov eax, dword [ebp - 0x28]
xor edx, edx
and eax, 0xffff
shl eax, 2
lea esi, [ebp + eax*2 - 0xac]
shr esp, 0
rol esp, 0
not ecx
not ecx
jo 0xa8600a
jne 0xa8601f
pushf
stc
std
cld
jg 0xa86013
stc
popf
mov esp, esp
mov esp, esp
lea ecx, [ecx]
je 0xa8601f
add eax, 0x81d44d8b
loope 0xa86024
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
add ecx, eax
mov cx, word [ebp + ecx*2 - 0xac]
cmp cx, word [esi]
jbe 0xa8603a
invalid
inc dword [eax]
add byte [ebx], al
enter 0xffffffffffff8b66, 0xffffffffffffff8c
dec ebp
push esp
invalid
mov dword [ebp - 0x2c], edx
inc edx
add esi, 2
cmp dx, 3
jb 0xa85ffe
jmp case.0xa85f5e.7
mov eax, dword [ebp - 0x24]
mov ecx, 9
and eax, 0xffff
cdq
idiv ecx
mov eax, 0x55555556
mov ecx, edx
mov dword [ebp - 0x24], edx
and ecx, 0xffff
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x28], edx
ror eax, 7
rol eax, 7
rol edi, 0
jo 0xa8609c
pushf
mov esp, esp
dec esi
inc esi
push esi
add esi, 0x18b5
ror esi, 0x1a
pop esi
popf
xchg esp, esp
mov esp, esp
lea eax, [eax]
jno 0xa8609c
call fcn.00a8ff89
add byte [ebx + 0x9b9dc45], cl
mov eax, dword [ebp - 0x24]
mov ecx, 9
and eax, 0xffff
jmp case.0xa85f5e.7
mov eax, dword [ebp - 0x24]
mov ecx, 9
and eax, 0xffff
cdq
idiv ecx
cmp edx, 8
ja case.default.0xa860b6
jmp dword [edx*4 + 0xa863a8]
mov esi, dword [ebp - 0x2c]
xor eax, eax
and esi, 0xffff
lea edx, [ebp + esi*2 - 0xac]
xor ecx, 0
xchg edi, ebx
xchg edi, ebx
jp 0xa860e4
jle 0xa860da
jns 0xa860dc
jne 0xa860de
jp 0xa860e0
jnp 0xa860e4
mov ebx, 0xd84d8b22
mov ecx, dword [ebp - 0x28]
and ecx, 0xffff
lea ecx, [esi + ecx*4]
mov cx, word [ebp + ecx*2 - 0xac]
cmp cx, word [edx]
jbe 0xa86100
mov dword [ebp - 0x28], eax
inc eax
add edx, 8
cmp ax, 3
jb 0xa860cf
jmp case.0xa85f5e.7
mov edx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
lea eax, [edx + edi*2]
add edi, eax
mov dword [ebp - 0x24], edi
mov edx, edx
jnp 0xa86138
pushf
rol ecx, 0x1d
rol ecx, 3
jne 0xa86128
nop
xor eax, dword [esp]
xor eax, dword [esp]
popf
jge 0xa86133
jmp 0xa86135
jp 0xa86138
add eax, 0x70bd8966
invalid
mov word [ebp - 0x90], di
mov ecx, dword [ebp - 0x20]
inc ecx
cmp cx, 7
mov dword [ebp - 0x20], ecx
jb 0xa85f3d
jmp case.0xa860b6.1
add edx, 0
inc edi
dec edi
shl edx, 0
ror edi, 0x18
rol edi, 0x18
jo 0xa8616b
jnp 0xa86167
jno 0xa8616b
ljmp 0xffff:0xf760e97e
jmp case.0xa860b6.1
xchg edi, edi
js 0xa8617d
jmp 0xa86176
xchg ebx, edx
xchg ebx, edx
jns 0xa8617d
mov ebx, 0xf687007a
jp 0xa8617f
xchg esi, esi
mov esi, esi
jns 0xa8619e
pushf
nop
test esp, 0x3e1f
mov edi, edi
shl ecx, 0
popf
jge 0xa86197
jl 0xa86199
ja 0xa8619b
js 0xa8619e
mov edi, 0xe8
add byte [ebx - 0x2708fb3c], al
call 0xa861a3
add esp, 4
neg eax
neg eax
jno 0xa861b9
jge 0xa861ae
jg 0xa861b0
jle 0xa861b2
jge 0xa861b4
jo 0xa861b9
jmp 0x13918c38
jmp case.0xa860b6.1