Function at 0x472e39
Capabilities:
Print debug messages

Disassembly:
xor esi, esi
cmp si, 3
jae case.0x472e32.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 0x4728be
dec eax
je 0x472857
sub eax, 0xf
je 0x4728f1
inc esi
jmp 0x472823
mov ecx, dword [ebp - 0x3a]
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 0x4728b2
mov dx, word [ebp - 0x3c]
mov word [ebp - 0x3e], 1
mov word [ebp - 0x42], dx
or edx, edx
jle 0x472899
ror eax, 0x12
rol eax, 0x12
jp 0x4728ac
pushf
cld
popf
nop
jge 0x4728a9
jnp 0x4728ac
mov ebx, 0xff71e946
invalid
inc esi
jmp 0x472823
mov word [ebp - 0x3e], 0
inc esi
jmp 0x472823
inc word [ebp - 0x3a]
and edi, 0xffffffff
cmp ecx, dword [esp + 0xc]
lea ecx, [ecx + 0x58d1]
sub ecx, 0x58d1
lea ecx, [ecx + 0x6219]
sub ecx, 0x6219
jb 0x4728eb
ja 0x4728e5
jmp 0x4728e7
jae 0x4728eb
cmp dword [eax + 0x46], 0xffff32e9
invalid
inc esi
jmp 0x472823
jle 0x4728f3
jg case.0x472ded.0
jp 0x4728f7
jmp 0x4728f9
lea esp, [esp]
jle case.0x472ded.0
mov eax, 0x66db33c2
cmp ebx, 8
xor ebx, ebx
cmp bx, 8
jae 0x473129
mov ecx, ebx
and ecx, 0xffff
lea eax, [ecx + 1]
imul eax, ecx
cmp eax, 0x38
ja case.0x47292b.7
xor ecx, ecx
mov cl, byte [eax + 0x473190]
jmp dword [ecx*4 + 0x47316c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
ja 0x47293a
jb 0x47293c
std
cld
jae 0x472953
pushf
sub esp, 0
shl esp, 0
popf
js 0x47294c
ja 0x47294e
jl 0x472950
jb 0x472953
ljmp 0xec45:0x8910e8c1
shr eax, 0x10
mov dword [ebp - 0x14], eax
add esp, 0
dec eax
inc eax
jp 0x472969
xchg edi, edi
jmp 0x472964
jnp 0x472969
mov ecx, 0xeb4369de
xchg esi, eax
inc ebx
jmp 0x472902
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x34]
and eax, 0xffff
mov dword [ebp - 0x1c], eax
xchg edx, eax
xchg edx, eax
je 0x47297f
jle 0x472981
shl esp, 0
jno 0x47299d
pushf
add eax, 0x5f68
sub eax, 0x5f68
popf
jl 0x472996
jns 0x472998
xchg esp, esp
jo 0x47299d
mov ebp, 0xff5fe943
invalid
inc ebx
jmp 0x472902
mov eax, dword [ebp - 0x18]
shr eax, 0x10
mov dword [ebp - 0x24], eax
shl esp, 0
lea esp, [esp]
add edx, dword [esp]
sub edx, dword [esp]
je 0x4729c8
xchg ecx, esi
xchg ecx, esi
jmp 0x4729c0
jno 0x4729c2
lea edi, [edi]
jne 0x4729c8
add eax, 0xe8458b47
mov eax, dword [ebp - 0x18]
and eax, 0xffff
inc ebx
mov dword [ebp - 0x2c], eax
jmp 0x472902
mov eax, dword [ebp - 0x24]
test eax, eax
je case.0x47292b.7
mov edx, dword [ebp - 0x28]
imul edx, eax
mov eax, dword [ebp - 0x1c]
and edx, 0xffff
add eax, edx
inc ebx
mov dword [ebp - 0x1c], eax
jmp 0x472902
mov dword [ebp - 0x34], 0x15a
shl edx, 0
cmp esp, 0x43b3
test esp, 0x2384
jg 0x472a37
pushf
ja 0x472a1a
dec edi
inc edi
cmp esp, 0x2881
popf
jg 0x472a26
jno 0x472a28
lea ecx, [ecx + 0x2a5b]
lea ecx, [ecx - 0x2a5b]
jle 0x472a37
add eax, 0x35d845c7
dec esi
add byte [eax], al
mov dword [ebp - 0x28], 0x4e35
inc ebx
jmp 0x472902
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x2c]
and ecx, 0xffff
shl ecx, 0x10
inc ebx
lea edx, [eax + ecx + 1]
mov dword [ebp - 0x14], edx
jmp 0x472902
mov eax, dword [ebp - 0x3e]
and eax, 0xffff
and eax, 0x80000001
jns 0x472a78
dec eax
or eax, 0xfffffffe
inc eax
sub eax, 0
je 0x472abc
dec eax
je 0x472ef2
inc ebx
jmp 0x472902
mov eax, dword [ebp - 0x14]
and eax, 0x7fff
mov dword [ebp - 0x14], eax
shl esp, 0
and esi, esi
test dword [esp + 8], edx
call fcn.00472aa3
add esp, 4
jo 0x472ab3
xchg ecx, esi
xchg ecx, esi
jb 0x472aae
jl 0x472ab0
jno 0x472ab3
add eax, 0x43fc4589
mov dword [ebp - 4], eax
inc ebx
jmp 0x472902
mov ecx, dword [ebp - 4]
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 0x472b00
mov cx, word [ebp - 0x3c]
mov word [ebp - 0x3e], 1
mov word [ebp - 0x42], cx
jmp case.0x472ded.0
mov eax, dword [ebp - 0x52]
and eax, 0xffff
cmp eax, 9
ja case.default.0x472b11
jmp dword [eax*4 + 0x4731cc]
nop
std
cld
jae 0x472b1d
ror edi, 0
jle 0x472b27
xchg edi, edi
jg 0x472b27
xor eax, 0xeda0158b
inc esi
add byte [ecx + 0x45e058], ah
mov edx, dword [0x46eda0]
mov eax, dword [0x45e058]
lea esi, [eax + edx]
mov eax, dword [eax + edx + 0x10]
test eax, eax
je 0x472dc9
cmp dword [esi], 0
je 0x472bb6
neg ecx
neg ecx
ror edi, 0
ror ebx, 0
cld
jae 0x472b5b
lea edx, [edx]
jle 0x472b57
jb 0x472b5b
sub eax, 0x8b0e8b28
adc eax, 0x46eda0
mov ecx, dword [esi]
mov edx, dword [0x46eda0]
add ecx, edx
xor eax, dword [esp + 8]
xor eax, dword [esp + 8]
and edx, 0xffffffff
jg 0x472b8d
pushf
mov esp, esp
rol ebx, 0
lea edi, [edi + 0x1ac6]
lea edi, [edi - 0x1ac6]
popf
ja 0x472b89
nop
jle 0x472b8d
mov ebp, 0x74003983
adc bh, al
add dword [eax], eax
add byte [eax], al
add byte [ebx - 0x3e7cfbbf], cl
add al, 0x85
sal byte [ebp - 0x10], 0xf7
sal bh, 1
rol byte [ebp + 0x720679ce], 1
add byte [eax + 2], bh
cmp dword [ecx], 0
je 0x472ba2
mov dword [ecx], 0
mov eax, dword [ecx + 4]
add ecx, 4
test eax, eax
jne 0x472b92
not eax
not eax
test esi, ecx
jns 0x472bb0
jb 0x472bac
js 0x472bb0
mov eax, 0x6c74a
add byte [eax], al
add byte [ebx - 0x397cdbba], cl
adc al, 0x85
sal byte [ebp - 0x7f], 0xe9
add al, 2
add byte [eax], al
mov dword [esi], 0
mov eax, dword [esi + 0x24]
add esi, 0x14
test eax, eax
jne 0x472b41
jmp 0x472dc9
nop
jmp 0x472dc9
not edx
not edx
sub esp, 0
jle 0x472be0
jbe 0x472bd6
lea eax, [eax]
xchg esp, esp
jl 0x472bdc
jg 0x472be0
sub eax, 0xe3e990aa
add dword [eax], eax
add byte [eax + 0x1dde9], dl
nop
jmp 0x472dc9
nop
jmp 0x472dc9
nop
jmp 0x472dc9
invalid
ret 0x3c73
nop
jmp 0x472dc9
nop
jmp 0x472dc9
nop
jmp 0x472dc9
nop
jmp 0x472dc9
test edx, 0x3c73
and edi, 0xffffffff
jl case.default.0x472b11
mov esp, esp
jge case.default.0x472b11
ljmp 0x7fc9:0x8790bb2d
nop
xchg ecx, ecx
jg 0x472c0f
xor esp, 0
jae 0x472c1c
lea esp, [esp]
jg 0x472c19
jb 0x472c1c
ljmp 0x46:0xeda00d8b
mov ecx, dword [0x46eda0]
mov edx, dword [0x45e058]
lea eax, [edx + ecx + 0x10]
mov ecx, dword [edx + ecx + 0x10]
test ecx, ecx
je 0x472dc9
mov ebx, eax
mov dword [ebp - 0x10], ebx
jmp 0x472c59
nop
push 0x46e49c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x472dc9
nop
jmp 0x472dc9
mov ebx, dword [ebp - 0x10]
nop
jo 0x472c5c
jg 0x472c64
jb 0x472c60
jle 0x472c64
lcall 0x46, 0x98c4a18d
mov eax, dword [0x4698c4]
xor esi, esi
test eax, eax
mov dword [ebp - 0x20], esi
jle 0x472cd5
mov edi, 0x45f968
lea ecx, [ecx]
jg 0x472c82
jb 0x472c7d
js 0x472c7f
jle 0x472c82
mov ebx, 0x8bfc438b
adc eax, 0x46eda0
mov eax, dword [ebx - 4]
mov edx, dword [0x46eda0]
add eax, edx
push eax
push edi
call fcn.00487fa0
add esp, 8
test eax, eax
je 0x472cb0
mov eax, dword [0x4698c4]
inc esi
add edi, 0xcc
cmp esi, eax
jl 0x472c77
mov dword [ebp - 0x20], esi
jmp 0x472cd5
mov dword [ebp - 0x20], esi
xchg esi, edi
xchg esi, edi
jne 0x472ccb
lea eax, [eax + 0x4953]
lea eax, [eax - 0x4953]
nop
mov ecx, ecx
je 0x472ccb
mov ecx, 0xc7e0758b
inc ebp
rol byte [ecx], 1
add byte [eax], al
add byte [ebx], cl
leave
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x30], 1
or ecx, ecx
clc
inc eax
dec eax
js 0x472cdc
jp 0x472ce7
jns 0x472ce0
jo 0x472ce2
jnp 0x472ce7
ljmp 0x85d0:0x458b2a7a
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x472db7
mov edi, dword [ebp - 0x10]
mov ebx, dword [0x46eda0]
mov ecx, dword [edi - 4]
add ecx, ebx
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jb 0x472d09
jo 0x472d1e
pushf
push eax
add eax, 0x2bd6
ror eax, 0xa
pop eax
popf
jno 0x472d1b
jno 0x472d1e
mov eax, 0xd8b3f8b
mov al, byte [0x30046ed]
stc
mov edi, dword [edi]
mov ecx, dword [0x46eda0]
add edi, ecx
rol ebx, 0xf
rol ebx, 0x11
cmc
jge 0x472d37
je 0x472d33
jl 0x472d37
sub eax, 0x3f837c
cmp dword [edi], 0
je 0x472db7
mov eax, esi
shl eax, 4
add eax, esi
lea edx, [eax + eax*2]
mov dword [ebp - 0x20], edx
xor esp, 0
stc
shl esp, 0
js 0x472d5b
js 0x472d54
xchg edx, ebx
xchg edx, ebx
jns 0x472d5b
add eax, 0xa9078b
add byte [eax], al
xor byte [edi + eax + 0x25], 0xff
inc dword [eax]
add bl, ch
or cl, byte [ebx + 0x46eda00d]
add byte [ebp - 0x74fdf7bc], cl
push ebp
loopne 0x472dc9
mov eax, dword [edi]
test eax, 0x80000000
je 0x472d6b
and eax, 0xffff
jmp 0x472d75
mov ecx, dword [0x46eda0]
lea eax, [eax + ecx + 2]
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [edx*4 + 0x45f964]
push eax
call fcn.00476d20
mov dword [edi], eax
add esp, 0
xor eax, ecx
xor eax, ecx
jno 0x472da4
pushf
xor esi, dword [esp + 8]
xor esi, dword [esp + 8]
xchg esi, esi
popf
jae 0x472da1
jo 0x472da4
mov edi, 0xf003f83
test byte [edi - 0x74fffffd], cl
inc edi
add al, 0x83
mov dword [eax*4 - 0x746d8a40], 0xc083f045
adc al, 0x89
inc ebp
invalid
cmp dword [edi], 0
je 0x47313c
mov eax, dword [edi + 4]
add edi, 4
test eax, eax
jne 0x472d49
mov eax, dword [ebp - 0x10]
add eax, 0x14
mov dword [ebp - 0x10], eax
cmp dword [eax], 0
jne 0x472c56
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, eax
and edx, 0xffff
lea ecx, [edx + 3]
imul ecx, edx
cmp ecx, 0x12
ja case.0x472ded.1
xor edx, edx
mov dl, byte [ecx + 0x473208]
jmp dword [edx*4 + 0x4731f4]
inc word [ebp - 0x52]
call 0x472dfd
add esp, 4
shl esp, 0
sub edi, 0
stc
jg 0x472e11
jl 0x472e0b
xchg ebx, ebx
jle 0x472e11
mov edi, 0x6660eb2e
mov ecx, dword [ebp - 0x52]
jmp case.0x472ded.1
mov cx, word [ebp - 0x52]
cmp cx, word [ebp - 0x40]
jne case.0x472ded.1
mov eax, dword [ebp - 0x3a]
mov ecx, 9
and eax, 0xffff
cdq
idiv ecx
cmp edx, 8
ja case.default.0x472e32
jmp dword [edx*4 + 0x47321c]
mov word [ebp - 0x3e], 1
cmp ebx, 0x290b
add edx, 0xafc
sub edx, 0xafc
xchg ecx, ecx
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x10]
jg 0x472e6e
pushf
add ecx, 0
xchg edi, edi
popf
xchg edi, esi
xchg edi, esi
nop
jle 0x472e6e
mov esi, 0x458b03eb
invalid
jmp case.0x472ded.1
mov eax, dword [ebp - 0x10]
inc eax
cmp ax, 4
mov dword [ebp - 0x10], eax
jb 0x472dce
nop
jmp 0x472dc9
jle 0x472e89
or esp, 0
cmp esi, dword [esp]
jle 0x472e91
jno 0x472e98
jno 0x472e95
jo 0x472e98
lcall 0x1878, 0x7e1ceb
jmp case.0x472e32.0
jle 0x472e9c
js case.0x472e32.0
pushf
add esp, 0
ror eax, 0x13
ror eax, 0xd
rol esi, 0x1c
rol esi, 4
popf
jge 0x472eb3
jns case.0x472e32.0
call 0xe4d3974a
inc esi
add bh, bh
adc eax, sym.imp.KERNEL32.dll_OutputDebugStringA
nop
push 0x46e48c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
jbe 0x472ecd
jle 0x472ee1
pushf
inc eax
dec eax
shl edi, 0
popf
js 0x472eda
xchg esi, ebx
xchg esi, ebx
jg 0x472ee1
mov ecx, 0xc183d3eb
add byte [ecx + 8], bh
jmp case.0x472e32.0
add ecx, 0
jns 0x472ef0
xchg esi, esi
js 0x472eec
js 0x472ef0
ljmp 0x89ff:0x33c4eb96
jmp case.0x472e32.0
xor edi, edi
mov dword [ebp - 0x10], edi
mov ecx, edi
and ecx, 0xffff
mov eax, ecx
imul eax, ecx
imul eax, ecx
cmp eax, 0xd8
ja case.0x472f1a.7
xor edx, edx
mov dl, byte [eax + 0x473260]
jmp dword [edx*4 + 0x473240]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
and eax, 0xffff
and ecx, 0xffff
lea edx, [ecx + eax*4]
inc word [ebp + edx*2 - 0x58]
lea eax, [ebp + edx*2 - 0x58]
nop
clc
je 0x472f61
pushf
lea edx, [edx + 0x3448]
lea edx, [edx - 0x3448]
xchg esp, esp
call 0x472f57
add esp, 4
popf
jbe 0x472f5e
jne 0x472f61
add eax, 0xc4458b66
mov ax, word [ebp - 0x3c]
mov word [ebp - 0x42], ax
jmp case.0x472f1a.7
mov eax, dword [ebp - 4]
mov ecx, 3
and eax, 0xffff
cdq
idiv ecx
mov dword [ebp - 8], edx
ror ecx, 3
ror ecx, 0x1d
jg 0x472f90
mov ebx, ebx
jle 0x472f90
mov esp, 0x3fe97d90
add dword [eax], eax
add byte [ebx - 0x2dcc0bb3], cl
mov ecx, dword [ebp - 0xc]
xor edx, edx
jmp case.0x472f1a.7
mov ecx, dword [ebp - 0xc]
xor edx, edx
and ecx, 0xffff
shl ecx, 2
lea esi, [ebp + ecx*2 - 0x58]
jbe 0x472fa9
cmp eax, dword [esp]
jge 0x472fc1
pushf
cld
shr ebx, 0
lea eax, [eax]
popf
jg 0x472fba
jmp 0x472fbc
jo 0x472fbe
jl 0x472fc1
mov esi, 0x25f8458b
invalid
mov eax, dword [ebp - 8]
and eax, 0xffff
add eax, ecx
mov ax, word [ebp + eax*2 - 0x58]
cmp ax, word [esi]
jbe 0x472fd8
mov dword [ebp - 8], edx
inc edx
add esi, 2
cmp dx, 3
jb 0x472fa7
jmp case.0x472f1a.7
mov eax, dword [ebp - 4]
mov ecx, 9
and eax, 0xffff
cdq
idiv ecx
mov eax, 0x55555556
mov ecx, edx
mov dword [ebp - 4], edx
and ecx, 0xffff
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0xc], edx
lea esi, [esi + 0x749a]
lea esi, [esi - 0x749a]
test edi, esi
xchg edx, edx
je 0x473025
jne 0x47302e
jo 0x473029
xchg edi, edi
je 0x47302e
mov esi, 0xe9f07d8b
sahf
add byte [eax], al
add byte [ebx + 0x9b9fc45], cl
mov eax, dword [ebp - 4]
mov ecx, 9
and eax, 0xffff
mov edi, dword [ebp - 0x10]
jmp case.0x472f1a.7
mov eax, dword [ebp - 4]
mov ecx, 9
and eax, 0xffff
cdq
idiv ecx
cmp edx, 8
ja case.default.0x47304b
jmp dword [edx*4 + 0x47333c]
mov ebx, dword [ebp - 8]
xor edx, edx
and ebx, 0xffff
lea esi, [ebp + ebx*2 - 0x58]
std
cld
je 0x473081
pushf
xor esp, 0
xor esp, 0
xor eax, dword [esp]
xor eax, dword [esp]
test dword [esp], ebx
popf
jg 0x47307a
xchg ecx, ecx
je 0x47307e
jne 0x473081
add eax, 0x25f4458b
invalid
mov eax, dword [ebp - 0xc]
and eax, 0xffff
lea ecx, [ebx + eax*4]
mov ax, word [ebp + ecx*2 - 0x58]
cmp ax, word [esi]
jbe 0x473099
mov dword [ebp - 0xc], edx
inc edx
add esi, 8
cmp dx, 3
jb 0x473061
jmp case.0x472f1a.7
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [edx + ecx*2]
add ecx, eax
mov dword [ebp - 4], ecx
jle 0x4730b5
xor eax, dword [esp]
xor eax, dword [esp]
js 0x4730bd
jo 0x4730d0
pushf
cmp edx, dword [esp + 8]
popf
jp 0x4730c9
lea edx, [edx]
jnp 0x4730cd
jno 0x4730d0
mov edi, 0xc44d8966
mov word [ebp - 0x3c], cx
inc edi
cmp di, 7
mov dword [ebp - 0x10], edi
jb 0x472ef7
jmp case.0x47304b.1
jb 0x4730e9
ror eax, 9
rol eax, 9
lea ebx, [ebx]
or esi, 0
jge 0x4730ff
xchg edx, edx
mov ebx, ebx
jns 0x4730fc
jl 0x4730ff
call 0x3e4eec
push edi
test esp, 0x7bbe
add eax, dword [esp]
jmp case.0x47304b.1
test esp, 0x7bbe
add eax, dword [esp]
sub eax, dword [esp]
xor esp, 0
cmp ebx, dword [esp + 4]
jbe 0x47311f
mov ebx, ebx
ja 0x47311f
call 0x10bb50d
add esp, 0
jno 0x473129
js 0x473126
jo 0x473129
mov eax, 0xe483f83b
push dword [edi + eax + 0x71]
add byte [ebx], dh
cmp edi, eax
and esp, 0xffffffff
je 0x473137
jno 0x473132
jae 0x473134
jne 0x473137
mov ebp, 0xfff6e5e9
call [edi + 0x5e]
jmp case.0x47304b.1
pop edi
pop esi
mov dword [0x46cb58], 0x46cb28
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret