Function at 0x46b730
Capabilities:
Enumerate pe sections
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x6ae0ba
push eax
mov dword fs:[0], esp
sub esp, 0x164
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
push edi
je 0x46b7ad
mov ecx, dword [0x223f100]
lea eax, [eax + eax*2]
shl eax, 5
add eax, ecx
mov cl, byte [eax + 0x64]
test cl, cl
jne 0x46b779
mov cl, byte [eax + 0x65]
test cl, cl
jne 0x46b779
push 1
jmp 0x46b77b
push 0
lea ecx, [esi + 0x1d8c]
call fcn.00527270
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*2]
mov eax, dword [0x223f100]
shl edx, 5
mov cl, byte [edx + eax + 0x65]
test cl, cl
lea ecx, [esi + 0x293c]
je 0x46b7a6
push 0
jmp 0x46b7a8
push 1
call fcn.00527270
lea ebp, [esi + 0x54]
xor edi, edi
mov dword [esp + 0x34], ebp
jmp 0x46b7c0
mov ecx, dword [0x223f100]
mov eax, dword [ecx + edi + 0x10]
test eax, eax
mov ecx, ebp
je 0x46b7d4
push 1
jmp 0x46b7d6
push 0
call fcn.00527270
add edi, 0x60
add ebp, 0x5d8
cmp edi, 0x1e0
jl 0x46b7c0
mov ecx, esi
call fcn.0046a5a0
mov ecx, 0x2203678
call fcn.005316e0
mov ecx, esi
call fcn.0046a890
mov ecx, dword [esi + 0x5dd8]
cmp ecx, 1
mov dword [esp + 0x14], 0
je 0x46b882
mov eax, dword [0x2203688]
mov edx, dword [eax + 0x404]
shl edx, 8
mov bl, byte [eax + edx + 0xcf]
add eax, edx
mov dl, 0x80
test dl, bl
jne 0x46b882
cmp ecx, 2
je 0x46b877
test byte [eax + 0xd1], dl
jne 0x46b877
test byte [eax + 0xcc], dl
je 0x46b85c
mov ecx, esi
mov dword [esi + 0x5dd4], 1
call fcn.0046a5a0
jmp 0x46b88e
test byte [eax + 0xd4], dl
je 0x46b88e
mov ecx, esi
mov dword [esi + 0x5dd4], 0
call fcn.0046a5a0
jmp 0x46b88e
mov eax, dword [0x719a54]
mov dword [esp + 0x14], eax
jmp 0x46b88e
fld dword [0x719a54]
fchs
fstp dword [esp + 0x14]
mov eax, dword [esi + 0x44]
test eax, eax
je 0x46b911
fld dword [esp + 0x14]
add eax, 0x1c
fcos
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x20], edx
fst dword [esp + 0x10]
fld dword [esp + 0x14]
fsin
fld dword [esp + 0x10]
fmul dword [esp + 0x18]
fld st(1)
fmul dword [esp + 0x20]
fsubp st(1)
fxch st(1)
fmul dword [esp + 0x18]
fxch st(2)
fmul dword [esp + 0x20]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], edx
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 8], ecx
call dword [sym.imp.WINMM.dll_timeGetTime]
mov edx, dword [esi + 0x44]
mov dword [edx + 0x1b8], eax
mov ecx, dword [esi + 0x44]
call fcn.0041b300
fld dword [0x220e068]
call fcn.005cd414
fld dword [0x220e060]
push eax
call fcn.005cd414
push eax
mov ecx, 0x85a9c4
call fcn.0044ed40
mov ecx, dword [0x85cfb0]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [0x85cfb8], eax
mov edi, dword [eax + 8]
je 0x46ba26
test edi, edi
mov eax, dword [eax]
mov dword [0x85cfb8], eax
je 0x46ba26
mov ebp, 1
xor ebx, ebx
jmp 0x46b970
mov eax, dword [edi + 0x1dad0]
cmp eax, ebx
mov dword [esp + 0x14], 0x3f800000
je 0x46b989
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x18]
call fcn.004441b0
fld dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
fadd dword [edi + 0x30]
fstp dword [esp + 0x1c]
mov eax, dword [edi + 0x34]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov ecx, 0x220e140
jmp 0x46b9c0
fld dword [esp + 0x20]
fmul dword [ecx + 4]
fld dword [esp + 0x18]
fmul dword [ecx - 4]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [ecx]
faddp st(1)
fadd dword [ecx + 8]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x46ba00
add ecx, 0x10
cmp ecx, 0x220e1a0
jl 0x46b9c0
mov ecx, edi
mov dword [edi + 0x180], ebp
call fcn.0055eab0
jmp 0x46ba06
mov dword [edi + 0x180], ebx
mov eax, dword [0x85cfb8]
cmp eax, dword [0x85cfb0]
mov edi, dword [eax + 8]
je 0x46ba26
cmp edi, ebx
mov edx, dword [eax]
mov dword [0x85cfb8], edx
jne 0x46b970
mov ecx, dword [0x85a904]
mov eax, dword [ecx]
xor ebx, ebx
cmp eax, ecx
mov dword [0x85a90c], eax
mov ebp, 1
je 0x46bb2f
mov edi, dword [eax + 8]
cmp edi, ebx
je 0x46bb15
mov eax, dword [edi + 0x1dad0]
cmp eax, ebx
mov dword [esp + 0x14], 0x3f800000
je 0x46ba66
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x18]
call fcn.004441b0
fld dword [esp + 0x14]
mov ecx, dword [edi + 0x2c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
fadd dword [edi + 0x30]
fstp dword [esp + 0x1c]
mov edx, dword [edi + 0x34]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
cmp dword [edi + 0x104], ebx
je 0x46baab
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x220e13c
call fcn.00439780
test al, al
je 0x46bb10
mov ecx, edi
mov dword [edi + 0x180], ebp
call fcn.0055eab0
test eax, eax
jne 0x46bb10
mov eax, dword [0x85a90c]
mov ecx, dword [eax + 8]
cmp ecx, ebx
je 0x46bada
mov edx, dword [ecx]
push ebp
call dword [edx]
mov eax, dword [0x85a90c]
mov dword [eax + 8], ebx
mov eax, dword [0x85a90c]
cmp eax, dword [0x85a904]
mov edi, dword [eax]
je 0x46bb07
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push eax
mov dword [ecx + 4], edx
call fcn.005cc620
mov eax, dword [0x85a908]
add esp, 4
dec eax
mov dword [0x85a908], eax
mov eax, edi
mov dword [0x85a90c], eax
jmp 0x46bb15
mov eax, dword [0x85a90c]
mov eax, dword [eax]
cmp eax, dword [0x85a904]
mov dword [0x85a90c], eax
jne 0x46ba42
mov ebp, 1
xor ebx, ebx
cmp dword [esi + 0x5dec], ebx
je 0x46bb42
mov ecx, dword [esi + 0x5de8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x48]
cmp ecx, ebx
je 0x46bd8e
call fcn.004c49d0
mov edi, dword [esi + 0x48]
mov ecx, dword [edi + 0x10]
mov ebp, eax
cmp ebp, ebx
mov dword [esp + 0x10], ecx
je 0x46bc02
cmp edi, ebx
je 0x46bb7d
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x48], ebx
cmp dword [esi + 0x5e20], ebx
jne 0x46bc02
mov eax, dword [0x223f100]
xor edx, edx
add eax, 0x65
mov ecx, 5
cmp dword [eax - 0x55], ebx
je 0x46bba3
cmp byte [eax], 0
jne 0x46bba3
mov edx, 1
add eax, 0x60
dec ecx
jne 0x46bb94
cmp edx, ebx
jne 0x46bc02
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
cmp edi, ebx
mov dword [esp + 0x17c], ebx
je 0x46bbef
push 0x2772
call fcn.0041d4a0
add esp, 4
push eax
push ebx
push 0xff
push 0xff
push 1
mov ecx, edi
call fcn.004c4d10
jmp 0x46bbf1
xor eax, eax
mov dword [esp + 0x17c], 0xffffffff
mov dword [esi + 0x5e20], eax
cmp dword [esp + 0x10], 1
jne 0x46bf58
cmp ebp, 1
jne 0x46bf58
cmp dword [esi + 0x4c], 0xffffffff
je 0x46bf58
mov edx, dword [0x223f100]
mov dword [edx + 0x1ec], ebx
mov eax, dword [esi + 0x4c]
mov ecx, dword [0x223f100]
lea eax, [eax + eax*2]
shl eax, 5
mov edx, dword [eax + ecx + 0x10]
push edx
call fcn.00598180
mov ebp, dword [sym.imp.WINMM.dll_timeGetTime]
add esp, 4
call ebp
mov edi, eax
mov eax, dword [0x223f100]
cmp dword [eax + 4], ebx
jne 0x46bf58
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x28]
push ecx
call ebx
test eax, eax
je 0x46bca4
push 0
push 0
push 0
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x46bca4
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov edx, dword [0x223f100]
mov eax, dword [edx + 0x1ec]
test eax, eax
je 0x46bcc9
mov eax, dword [esi + 0x4c]
mov ecx, dword [edx + 0x1f4]
lea eax, [eax + eax*2]
shl eax, 5
cmp ecx, dword [eax + edx + 0x10]
je 0x46bcea
call ebp
sub eax, edi
cmp eax, 0x7530
ja 0x46bf3a
mov edx, dword [0x223f100]
mov eax, dword [edx + 4]
test eax, eax
je 0x46bc66
jmp 0x46bf58
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x46bd04
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esi + 0x44], 0
mov edx, dword [0x223f100]
mov eax, dword [esi + 0x4c]
lea ecx, [eax + eax*2]
shl ecx, 5
mov byte [ecx + edx + 0x65], 1
or ebx, 0xffffffff
push 0xc48
mov dword [esi + 0x4c], ebx
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x17c], 1
je 0x46bd62
push 0x276c
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push 0
mov ecx, edi
call fcn.004c4d10
jmp 0x46bd64
xor eax, eax
mov dword [esi + 0x48], eax
mov esi, dword [esp + 0x34]
mov dword [esp + 0x17c], ebx
mov edi, 5
push 0
mov ecx, esi
call fcn.00527280
add esi, 0x5d8
dec edi
jne 0x46bd77
jmp 0x46bf58
mov ecx, dword [esi + 0x5e1c]
cmp ecx, ebx
je 0x46bf76
call fcn.004c49d0
mov ebp, eax
cmp ebp, ebx
je 0x46bdc7
mov edi, dword [esi + 0x5e1c]
cmp edi, ebx
je 0x46bdc7
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x5e1c], ebx
cmp ebp, 1
jne 0x46bf58
cmp dword [esi + 0x4c], 0xffffffff
je 0x46bf58
mov edx, dword [0x223f100]
mov dword [edx + 0x1ec], ebx
mov eax, dword [esi + 0x4c]
mov ecx, dword [0x223f100]
lea eax, [eax + eax*2]
shl eax, 5
mov edx, dword [eax + ecx + 0x10]
push edx
call fcn.0059c240
mov ebp, dword [sym.imp.WINMM.dll_timeGetTime]
add esp, 4
call ebp
mov edi, eax
mov eax, dword [0x223f100]
cmp dword [eax + 4], ebx
jne 0x46bf58
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x28]
push ecx
call ebx
test eax, eax
je 0x46be5e
push 0
push 0
push 0
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x46be5e
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov ecx, dword [0x223f100]
mov eax, dword [ecx + 0x1ec]
test eax, eax
je 0x46be83
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0x1f4]
shl edx, 5
cmp eax, dword [edx + ecx + 0x10]
je 0x46bea4
call ebp
sub eax, edi
cmp eax, 0x7530
ja 0x46bf3a
mov ecx, dword [0x223f100]
mov eax, dword [ecx + 4]
test eax, eax
je 0x46be20
jmp 0x46bf58
mov edx, dword [esi + 0x44]
mov byte [edx + 0x285], 0
mov eax, dword [esi + 0x4c]
mov ecx, dword [0x223f100]
lea eax, [eax + eax*2]
shl eax, 5
mov byte [eax + ecx + 0x65], 0
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*2]
mov eax, dword [0x223f100]
shl edx, 5
mov cl, byte [edx + eax + 0x64]
test cl, cl
lea ecx, [esi + 0x1d8c]
je 0x46bee2
push 0
jmp 0x46bee4
push 1
call fcn.00527270
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x17c], 2
je 0x46cddb
push 0x276e
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push 0
mov ecx, edi
call fcn.004c4d10
mov dword [esi + 0x48], eax
jmp 0x46bf58
push str.Data_Receving_Error
push 0xff
push 0xff
push 0xff
push 0
call fcn.004c5540
add esp, 0x14
mov eax, 2
mov ecx, dword [esp + 0x174]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x170
ret
mov ecx, dword [esi + 0x5e20]
cmp ecx, ebx
je 0x46bfd7
call fcn.004c49d0
mov ebp, eax
cmp ebp, ebx
je 0x46bfab
mov edi, dword [esi + 0x5e20]
cmp edi, ebx
je 0x46bfab
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x5e20], ebx
cmp ebp, 1
jne 0x46bf58
xor edx, edx
mov esi, dword [0x223f100]
lea edi, [edx + esi + 0xc]
xor eax, eax
add edx, 0x60
cmp edx, 0x1e0
mov ecx, 0x18
rep stosd dword es:[edi], eax
jl 0x46bfb2
mov eax, 4
jmp 0x46bf5d
mov ecx, dword [esi + 0x5df8]
cmp ecx, ebx
je 0x46c465
call fcn.004c49d0
mov edi, eax
cmp dword [esi + 0x5e18], ebx
jne 0x46c16e
push 0xd
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x46c046
mov al, byte [0x864dff]
test al, al
jne 0x46c04d
cmp dword [esi + 0x5e14], ebx
mov eax, dword [0x708598]
mov byte [0x864dff], 1
je 0x46c02f
cmp eax, 4
je 0x46c04d
mov dword [esi + 0x5e14], ebx
jmp 0x46c04d
cmp eax, 4
je 0x46c04d
mov ecx, 0x2203adc
call fcn.005347d0
mov dword [esi + 0x5e14], ebp
jmp 0x46c04d
mov byte [0x864dff], 0
cmp edi, ebp
jne 0x46c13c
mov ecx, esi
call fcn.0046b520
test eax, eax
jne 0x46c094
xor ecx, ecx
lea edx, [esi + 0x5dfc]
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ecx
mov byte [edx + 0x14], cl
mov ecx, 0x2203adc
call fcn.005347d0
mov dword [esi + 0x5e14], ebp
mov dword [esi + 0x5e18], ebx
jmp 0x46bf58
mov edi, dword [esi + 0x5df8]
cmp edi, ebx
je 0x46c0b4
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x5df8], ebx
lea eax, [esi + 0x5dfc]
push eax
push 0x71a9c8
call fcn.0041d3b0
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 0xc
mov dword [esp + 0x10], edi
cmp edi, ebx
mov dword [esp + 0x17c], 3
je 0x46c10e
push 0x276b
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push ebp
mov ecx, edi
call fcn.004c4d10
jmp 0x46c110
xor eax, eax
mov dword [esi + 0x5df8], eax
mov dword [eax + 0xbd4], ebx
mov ecx, 0x2203adc
mov dword [esp + 0x17c], 0xffffffff
mov dword [esi + 0x5e18], ebp
call fcn.005347d0
jmp 0x46bf58
cmp edi, 2
jne 0x46bf58
mov edi, dword [esi + 0x5df8]
cmp edi, ebx
je 0x46bf58
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x5df8], ebx
jmp 0x46bf58
cmp edi, ebp
jne 0x46c38c
cmp dword [esi + 0x4c], 0xffffffff
je 0x46c394
mov ecx, dword [0x223f100]
mov dword [ecx + 0x1ec], 0
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*2]
mov eax, dword [0x223f100]
shl edx, 5
mov ecx, dword [edx + eax + 0x10]
lea ebx, [esi + 0x5dfc]
push ebx
push ecx
call fcn.0059c1e0
mov ebp, dword [sym.imp.WINMM.dll_timeGetTime]
add esp, 8
call ebp
mov edx, dword [0x223f100]
mov edi, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x46c394
lea ecx, [ecx]
push 0
push 0
push 0
push 0
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x46c212
push 0
push 0
push 0
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x46c212
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov edx, dword [0x223f100]
mov eax, dword [edx + 0x1ec]
test eax, eax
jne 0x46c243
call ebp
sub eax, edi
cmp eax, 0x7530
ja 0x46c36c
mov ecx, dword [0x223f100]
mov eax, dword [ecx + 4]
test eax, eax
je 0x46c1d0
jmp 0x46c394
mov eax, dword [edx + 0x1ec]
cmp eax, 1
jne 0x46c2cf
mov eax, dword [esi + 0x4c]
lea eax, [eax + eax*2]
shl eax, 5
mov ecx, ebx
lea edx, [eax + edx + 0x50]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x46c261
mov eax, dword [esi + 0x4c]
mov edx, dword [0x223f100]
lea ecx, [eax + eax*2]
shl ecx, 5
mov byte [ecx + edx + 0x64], 0
mov eax, dword [esi + 0x4c]
mov edx, dword [0x223f100]
lea ecx, [eax + eax*2]
imul eax, eax, 0x5d8
shl ecx, 5
lea ecx, [ecx + edx + 0x50]
push ecx
lea ecx, [eax + esi + 0x54]
call fcn.00527350
mov edi, dword [esi + 0x5df8]
test edi, edi
je 0x46bf58
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x5df8], 0
jmp 0x46bf58
cmp eax, 2
jne 0x46c32c
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x17c], 4
je 0x46c35a
push 0x13b6
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push 0
mov ecx, edi
call fcn.004c4d10
mov dword [esp + 0x17c], 0xffffffff
mov dword [esi + 0x48], eax
jmp 0x46c394
cmp eax, 3
jne 0x46c394
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x17c], 5
je 0x46c35a
push 0x13b1
jmp 0x46c2fb
xor eax, eax
mov dword [esp + 0x17c], 0xffffffff
mov dword [esi + 0x48], eax
jmp 0x46c394
push str.Data_Receving_Error
push 0xff
push 0xff
push 0xff
push 0
call fcn.004c5540
add esp, 0x14
jmp 0x46c394
cmp edi, ebx
je 0x46bf58
mov edi, dword [esi + 0x5df8]
xor ebx, ebx
cmp edi, ebx
je 0x46c3b6
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x5df8], ebx
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
cmp edi, ebx
mov dword [esp + 0x17c], 6
je 0x46c400
push 0x276a
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push 1
mov ecx, edi
call fcn.004c4d10
jmp 0x46c402
xor eax, eax
mov dword [esi + 0x5df8], eax
mov dword [eax + 0xbd4], ebx
xor edx, edx
lea eax, [esi + 0x5dfc]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
push 1
mov ecx, 0x2203adc
mov dword [esp + 0x180], 0xffffffff
mov byte [eax + 0x14], dl
call fcn.005325b0
mov ecx, 0x2203adc
call fcn.005347d0
push 0xd
mov dword [esi + 0x5e14], 1
mov dword [esi + 0x5e18], ebx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x46bf58
mov ebx, dword [esp + 0x34]
mov ecx, ebx
call fcn.00527290
test al, al
jne 0x46c4c7
mov ecx, ebx
call fcn.00527790
test eax, eax
je 0x46c4c7
mov edi, ebx
mov ebp, 5
push 0
mov ecx, edi
call fcn.00527280
add edi, 0x5d8
dec ebp
jne 0x46c486
push 1
mov ecx, ebx
call fcn.00527280
mov ecx, dword [0x223f100]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x46bf58
push 0
mov ecx, esi
mov dword [esi + 0x4c], 0
call fcn.0046b020
jmp 0x46bf58
lea edi, [esi + 0x62c]
mov ecx, edi
call fcn.00527290
test al, al
jne 0x46c535
mov ecx, edi
call fcn.00527790
test eax, eax
je 0x46c535
mov edi, ebx
mov ebp, 5
lea ebx, [ebx]
push 0
mov ecx, edi
call fcn.00527280
add edi, 0x5d8
dec ebp
jne 0x46c4f0
push 1
lea ecx, [esi + 0x62c]
call fcn.00527280
mov edx, dword [0x223f100]
mov eax, dword [edx + 0x70]
test eax, eax
je 0x46bf58
push 1
mov ecx, esi
mov dword [esi + 0x4c], 1
call fcn.0046b020
jmp 0x46bf58
lea ebx, [esi + 0xc04]
mov ecx, ebx
call fcn.00527290
test al, al
jne 0x46c5a3
mov ecx, ebx
call fcn.00527790
test eax, eax
je 0x46c5a3
mov edi, dword [esp + 0x34]
mov ebp, 5
lea ebx, [ebx]
push 0
mov ecx, edi
call fcn.00527280
add edi, 0x5d8
dec ebp
jne 0x46c560
push 1
mov ecx, ebx
call fcn.00527280
mov eax, dword [0x223f100]
mov ecx, dword [eax + 0xd0]
test ecx, ecx
je 0x46bf58
push 2
mov ecx, esi
mov dword [esi + 0x4c], 2
call fcn.0046b020
jmp 0x46bf58
lea edi, [esi + 0x11dc]
mov ecx, edi
call fcn.00527290
test al, al
jne 0x46c5f1
mov ecx, edi
call fcn.00527790
test eax, eax
je 0x46c5f1
push 3
mov ecx, esi
call fcn.00469430
mov ecx, dword [0x223f100]
mov eax, dword [ecx + 0x130]
test eax, eax
je 0x46bf58
push 3
mov ecx, esi
mov dword [esi + 0x4c], 3
call fcn.0046b020
jmp 0x46bf58
lea edi, [esi + 0x17b4]
mov ecx, edi
call fcn.00527290
test al, al
jne 0x46c63f
mov ecx, edi
call fcn.00527790
test eax, eax
je 0x46c63f
push 4
mov ecx, esi
call fcn.00469430
mov edx, dword [0x223f100]
mov eax, dword [edx + 0x190]
test eax, eax
je 0x46bf58
push 4
mov ecx, esi
mov dword [esi + 0x4c], 4
call fcn.0046b020
jmp 0x46bf58
lea ecx, [esi + 0x1d8c]
call fcn.00527790
test eax, eax
je 0x46cc9b
mov eax, dword [esi + 0x4c]
xor ebp, ebp
cmp eax, 0xffffffff
je 0x46cc48
lea ecx, [eax + eax*2]
mov eax, dword [0x223f100]
shl ecx, 5
cmp dword [ecx + eax + 0x10], ebp
je 0x46cc48
mov dword [eax + 0x1ec], ebp
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*2]
mov eax, dword [0x223f100]
shl edx, 5
mov ecx, dword [edx + eax + 0x10]
push ecx
call fcn.005981b0
mov eax, dword [esi + 0x4c]
mov ecx, dword [0x223f100]
lea edx, [eax + eax*2]
shl edx, 5
mov eax, dword [edx + ecx + 0x10]
mov dword [0x8666d8], eax
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*2]
shl edx, 5
mov eax, dword [edx + ecx + 0x14]
add esp, 4
push 0x21fdf0c
mov ecx, 0x8655e8
mov dword [0x21fdf0c], eax
call fcn.004cac60
mov eax, dword [esi + 0x4c]
lea ecx, [eax + eax*2]
mov eax, dword [0x223f100]
shl ecx, 5
movzx edx, word [ecx + eax + 0x18]
mov dword [0x8655f8], edx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dl, byte [ecx + eax + 0x1a]
mov byte [0x867d8d], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dl, byte [ecx + eax + 0x1b]
mov byte [0x867d8e], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dl, byte [ecx + eax + 0x1c]
mov byte [0x867d8f], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dl, byte [ecx + eax + 0x1d]
mov byte [0x867d90], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dl, byte [ecx + eax + 0x1e]
mov byte [0x867d91], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dl, byte [ecx + eax + 0x1f]
mov byte [0x867d92], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dl, byte [ecx + eax + 0x20]
mov byte [0x868d94], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dx, word [ecx + eax + 0x22]
mov word [0x8666c4], dx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dx, word [ecx + eax + 0x26]
mov word [0x865618], dx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dx, word [ecx + eax + 0x28]
mov word [0x86561c], dx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dx, word [ecx + eax + 0x2a]
mov word [0x865616], dx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dx, word [ecx + eax + 0x2c]
mov word [0x86561a], dx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dx, word [ecx + eax + 0x24]
mov word [0x865614], dx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dx, word [ecx + eax + 0x2e]
mov word [0x86561e], dx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
movzx edx, word [ecx + eax + 0x30]
mov dword [0x868d98], edx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
movzx edx, word [ecx + eax + 0x32]
mov dword [0x868d9c], edx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
movzx edx, word [ecx + eax + 0x34]
mov dword [0x868da0], edx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
lea edx, [ecx + eax + 0x36]
mov ecx, dword [edx]
mov dword [0x868da4], ecx
mov ecx, dword [edx + 4]
mov dword [0x868da8], ecx
mov ecx, dword [edx + 8]
mov dword [0x868dac], ecx
mov dl, byte [edx + 0xc]
mov byte [0x868db0], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
lea edx, [ecx + eax + 0x43]
mov ecx, dword [edx]
mov dword [0x868db1], ecx
mov ecx, dword [edx + 4]
mov dword [0x868db5], ecx
mov ecx, dword [edx + 8]
mov dword [0x868db9], ecx
mov dl, byte [edx + 0xc]
mov byte [0x868dbd], dl
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
lea edx, [ecx + eax + 0x50]
mov ecx, dword [edx]
mov dword [0x868dbe], ecx
mov ecx, dword [edx + 4]
mov dword [0x868dc2], ecx
mov ecx, dword [edx + 8]
mov dword [0x868dc6], ecx
mov ecx, dword [edx + 0xc]
mov dword [0x868dca], ecx
mov edx, dword [edx + 0x10]
mov dword [0x868dce], edx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
lea edx, [ecx + eax + 0x66]
mov eax, dword [edx]
mov dword [0x21fed23], eax
mov cx, word [edx + 4]
mov word [0x21fed27], cx
mov ecx, 0x8655e8
call fcn.004d4790
mov ebx, dword [sym.imp.WINMM.dll_timeGetTime]
call ebx
mov edx, dword [0x223f100]
mov dword [esp + 0x10], eax
cmp dword [edx + 4], ebp
jne 0x46cbef
lea esp, [esp]
cmp dword [0x719a5c], 6
jne 0x46cb75
push 6
call fcn.0058d580
add esp, 4
call ebx
mov edi, eax
jmp 0x46c940
push ebp
push ebp
push ebp
push ebp
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x46c97b
push ebp
push ebp
push ebp
lea ecx, [esp + 0x44]
push ecx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x46c97b
lea edx, [esp + 0x38]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
call ebx
sub eax, edi
cmp eax, 0x1388
jbe 0x46c940
mov eax, dword [0x223f100]
movzx ecx, byte [eax + 0x1f3]
movzx edx, byte [eax + 0x1f2]
push ecx
movzx ecx, byte [eax + 0x1f1]
push edx
movzx edx, byte [eax + 0x1f0]
push ecx
push edx
lea eax, [esp + 0x80]
push str._d._d._d._d
push eax
call fcn.005cd489
lea ecx, [esp + 0x88]
push 0x2a3a
push ecx
call fcn.0058d3f0
add esp, 0x20
test al, al
jne 0x46cc00
call fcn.004014f0
mov edx, dword [0x223f100]
mov dword [edx + 0x1ec], ebp
mov eax, dword [0x223f100]
mov edx, dword [eax + 0x1f8]
lea ecx, [eax + 0x46f]
push ecx
push edx
call fcn.00599480
add esp, 8
call fcn.00401510
mov ecx, 0x22012e8
mov dword [0x719a5c], 1
call fcn.0042c7f0
mov ecx, 0x22012fc
call fcn.0042c680
mov dword [0x220132c], ebp
call fcn.00458e20
mov ecx, dword [0x21fd7b8]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [0x21fd7c0], eax
je 0x46ca7b
mov eax, dword [eax + 0x10]
cmp eax, ebp
je 0x46ca64
xor ecx, ecx
mov cl, byte [eax + 6]
xor edx, edx
mov dx, word [eax + 4]
push ebp
push ecx
mov ecx, 0x8655e8
push edx
call fcn.004c9f30
mov ecx, 0x21fd7c0
call fcn.00421780
mov eax, dword [0x21fd7c0]
cmp eax, dword [0x21fd7b8]
jne 0x46ca45
mov eax, 0x865664
mov dword [eax - 0x24], ebp
mov dword [eax], ebp
add eax, 4
cmp eax, 0x865688
jl 0x46ca80
mov ecx, 0x21fd828
call fcn.0042c680
mov ecx, 0x21fd840
call fcn.0042c680
mov ecx, 0x21fd858
call fcn.0042c680
mov ecx, 0x21fd870
call fcn.0042c680
mov ecx, 0x21fd888
call fcn.0042c680
mov ecx, 0x21fd7b0
call fcn.0042c6f0
mov ecx, 0x21fd768
call fcn.0042c680
mov ecx, 0x8655e8
call fcn.004d4790
mov ecx, 0x21fd798
call fcn.0042c680
mov ecx, 0x21fd780
call fcn.0042c680
mov ecx, 0x21fd7c4
mov dword [0x21fd8b4], ebp
mov dword [0x21fd8b8], ebp
call fcn.0042ca80
mov ecx, dword [0x223f100]
mov eax, dword [ecx]
push ebp
call dword [eax + 0x548]
xor eax, eax
mov ecx, 0x5a0
mov edi, 0x8666dc
rep stosd dword es:[edi], eax
mov ecx, 0xb4
mov edi, 0x21fe736
rep stosd dword es:[edi], eax
mov ecx, 0xb4
mov edi, 0x21fea06
rep stosd dword es:[edi], eax
mov eax, dword [0x21fe668]
cmp eax, ebp
je 0x46cb56
push eax
call fcn.005cdc59
add esp, 4
mov dword [0x21fe668], ebp
mov ecx, 0x2207f78
mov dword [0x85cfbc], ebp
call fcn.0053d2a0
mov byte [0x71cf90], 7
mov dword [0x719a58], ebp
call ebx
push ebp
push ebp
push ebp
push ebp
lea ecx, [esp + 0x64]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x46cbb0
push ebp
push ebp
push ebp
lea edx, [esp + 0x60]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x46cbb0
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [esp + 0x54]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov ecx, dword [0x223f100]
cmp dword [ecx + 0x1ec], ebp
je 0x46cbd3
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0x1f4]
shl edx, 5
cmp eax, dword [edx + ecx + 0x10]
je 0x46cbef
call ebx
sub eax, dword [esp + 0x10]
cmp eax, 0x7530
ja 0x46cc2e
mov ecx, dword [0x223f100]
cmp dword [ecx + 4], ebp
je 0x46c920
mov ecx, esi
call fcn.00469d20
mov eax, 1
jmp 0x46bf5d
push 0x275c
call fcn.0041d4a0
push eax
push 0xff
push 0xff
push 0xff
push ebp
call fcn.004c5540
add esp, 0x18
mov dword [0x719a5c], ebp
jmp 0x46bf58
push str.Data_Receving_Error
push 0xff
push 0xff
push 0xff
push ebp
jmp 0x46bf50
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
cmp edi, ebp
mov dword [esp + 0x17c], 7
je 0x46cddb
push 0x13c6
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push ebp
mov ecx, edi
call fcn.004c4d10
mov dword [esi + 0x48], eax
jmp 0x46bf58
lea ecx, [esi + 0x2364]
call fcn.00527790
test eax, eax
je 0x46cd1a
mov eax, dword [0x223f100]
xor edi, edi
add eax, 0x10
cmp dword [eax], 0
je 0x46ccf2
inc edi
add eax, 0x60
cmp edi, 5
jl 0x46ccb4
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x17c], 8
je 0x46cddb
push 0x13c7
jmp 0x46bf14
mov esi, dword [esp + 0x34]
mov ebp, 5
jmp 0x46cd00
push 0
mov ecx, esi
call fcn.00527280
add esi, 0x5d8
dec ebp
jne 0x46cd00
lea eax, [edi + 5]
jmp 0x46bf5d
lea ecx, [esi + 0x293c]
call fcn.00527790
test eax, eax
je 0x46cde5
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x46cdaf
lea edx, [eax + eax*2]
mov eax, dword [0x223f100]
shl edx, 5
mov ecx, dword [edx + eax + 0x10]
test ecx, ecx
je 0x46cdaf
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x17c], 9
je 0x46cd9f
push 0x13c8
call fcn.0041d4a0
add esp, 4
push eax
push 0
push 0xff
push 0xff
push 1
mov ecx, edi
call fcn.004c4d10
mov dword [esi + 0x48], eax
mov dword [eax + 0xbd4], 0
jmp 0x46bf58
xor eax, eax
mov dword [esi + 0x48], eax
mov dword [eax + 0xbd4], eax
jmp 0x46bf58
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x17c], 0xa
je 0x46cddb
push 0x13c6
jmp 0x46bf14
xor eax, eax
mov dword [esi + 0x48], eax
jmp 0x46bf58
lea edi, [esi + 0x2f14]
mov ecx, edi
call fcn.00527790
test eax, eax
je 0x46ce0e
push 0
mov ecx, edi
mov dword [esi + 0x5dec], 1
call fcn.00527270
jmp 0x46bf58
lea ecx, [esi + 0x34ec]
call fcn.00527790
test eax, eax
je 0x46bf58
xor eax, eax
jmp 0x46bf5d