Function at 0x300c196d
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov eax, dword [section..cdata]
push ebx
push esi
mov esi, dword [fcn.3000155c]
push edi
push 0
push dword [ebp + 8]
mov dword [ebp - 4], eax
call esi
mov edi, dword [ebp + 0xc]
cmp edi, 0x14
mov ebx, eax
ja 0x300c1ebb
je 0x300c1e2e
cmp edi, 0xb
ja 0x300c1c57
je 0x300c1c23
mov eax, edi
dec eax
dec eax
je 0x300c1bd1
dec eax
je 0x300c1ba2
dec eax
dec eax
je 0x300c1a42
dec eax
dec eax
je 0x300c19d2
dec eax
je 0x300c19d7
jmp 0x300c287d
call fcn.3002bcc9
cmp byte [0x301e4d0d], 0
je 0x300c1a16
test byte [0x301e469e], 8
jne 0x300c1a16
cmp edi, 7
jne 0x300c1a0f
test byte [ebx + 0xa], 2
je 0x300c1a06
mov eax, dword [0x301e4af0]
test eax, eax
je 0x300c1a02
cmp dword [eax], 0
jne 0x300c1a06
push 1
jmp 0x300c1a08
push 0
call fcn.30006ad0
jmp 0x300c1a2e
push 0
call fcn.30006ad0
cmp edi, 8
jne 0x300c1a2e
mov eax, dword [0x301e469c]
shr eax, 1
and eax, 1
push eax
push dword [ebx + 4]
call fcn.30126575
xor eax, eax
cmp edi, 7
sete al
push eax
push ebx
call fcn.300bb380
jmp 0x300c291a
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 8]
call dword [fcn.30001698]
push 0xfffffffffffffff0
push dword [ebp + 8]
call esi
test eax, 0x800000
je 0x300c1ab8
push dword [ebx]
mov word [ebp - 0x48], 0x78
call fcn.30056487
mov esi, eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x6c]
push eax
push 1
lea eax, [ebp - 0x48]
push eax
push dword [0x301e4968]
call fcn.30055f22
push eax
call fcn.3000c2a8
mov eax, dword [ebp - 0x80]
cdq
push 4
pop ecx
idiv ecx
xor ecx, ecx
inc ecx
sub ecx, eax
mov eax, dword [ebp - 0x6c]
push ecx
cdq
sub eax, edx
xor ecx, ecx
sar eax, 1
inc ecx
sub ecx, eax
push ecx
lea eax, [ebp - 0x68]
push eax
call dword [0x300015c8]
push esi
call fcn.30056487
lea esi, [ebp - 0x68]
lea edi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push dword [ebp - 0x50]
push dword [ebp - 0x58]
call fcn.30056021
push dword [ebp - 0x54]
mov dword [ebp - 0x60], eax
push dword [ebp - 0x4c]
call fcn.30056021
mov dword [ebp - 0x5c], eax
push dword [ebx + 0x20]
lea edi, [ebx + 0x1c]
push dword [edi]
lea eax, [ebp - 0x58]
push eax
call fcn.3000f922
test byte [ebx + 8], 0x10
lea esi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x68]
lea edi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x300c1b0d
mov dword [ebp - 0x50], 0x7fff
push dword [ebp - 0x50]
push dword [ebp - 0x58]
call fcn.30056021
push dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
push dword [ebp - 0x4c]
call fcn.30056021
push dword [ebx + 0x10]
lea edi, [ebx + 0xc]
push dword [edi]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x58]
push eax
call fcn.3000f922
lea esi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x1c]
lea edi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [ebp - 0x50]
test byte [ebx + 0xb], 0x40
je 0x300c1b77
test byte [0x301e4ce8], 2
lea esi, [ebp - 0x58]
lea edi, [ebp - 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x300c1b72
lea eax, [ebp - 0x78]
push eax
push dword [ebx]
call fcn.3015305f
lea eax, [ebp - 0x78]
jmp 0x300c1b7a
lea eax, [ebp - 0x58]
push eax
push dword [0x301ddbd8]
push ebx
call fcn.300bcfa6
push dword [0x301ddbd8]
push dword [ebp + 8]
call dword [fcn.30001430]
push eax
call dword [sym.imp.GDI32.dll_SelectClipRgn]
jmp 0x300c291a
cmp byte [0x301e4d0d], 0
je 0x300c291a
test byte [0x301e469e], 4
je 0x300c291a
test byte [ebx + 8], 2
je 0x300c291a
push ebx
call fcn.300bfa10
jmp 0x300c291a
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x300c1be3
push eax
push 1
call fcn.300c57aa
push dword [ebx]
call fcn.30056487
push 0x301e4464
mov esi, eax
call fcn.30055da8
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x300c1c06
push eax
call fcn.3000baaf
push esi
call fcn.30056487
push 0x301e4540
push dword [ebx]
call fcn.3002ec03
push ebx
call fcn.3004be61
jmp 0x300c291a
mov ebx, dword [ebx + 8]
test bl, 2
je 0x300c291a
test bl, 1
je 0x300c291a
cmp dword [ebp + 0x10], 0
push dword [ebp + 8]
je 0x300c1c4c
call dword [fcn.300014bc]
jmp 0x300c291a
call dword [fcn.300014c0]
jmp 0x300c291a
mov eax, edi
sub eax, 0xc
je 0x300c27fa
dec eax
je 0x300c2831
dec eax
je 0x300c1e23
dec eax
jne 0x300c287d
push dword [ebp + 8]
call dword [fcn.300014c0]
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 8]
call dword [0x30001460]
push dword [ebx]
call fcn.30056487
mov dword [ebp - 0x48], eax
mov eax, dword [0x301e4968]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x7c], ecx
mov eax, dword [eax + 0x18]
push dword [ebx + 4]
mov dword [ebp + 0xc], eax
call dword [fcn.30001488]
mov edi, dword [sym.imp.MSO.DLL_Ordinal_497]
mov dword [ebp + 0x10], eax
call edi
test eax, eax
je 0x300c1cf4
call edi
push eax
call dword [sym.imp.MSO.DLL_Ordinal_114]
push dword [ebx + 4]
mov esi, eax
call dword [fcn.300014a8]
cmp esi, eax
jne 0x300c1cf4
cmp dword [ebp + 0x10], 0
jne 0x300c1ceb
test byte [0x301ddd70], 8
je 0x300c1ceb
push 0x43
jmp 0x300c1ced
push 0x41
pop eax
push eax
call fcn.3000ee96
cmp dword [ebp + 0x10], 0
jne 0x300c1d0e
push 0x11
call dword [fcn.30001680]
mov dword [ebp + 0x14], eax
lea eax, [ebp + 0x14]
push eax
call fcn.3000eeb2
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 8]
call dword [fcn.30001698]
cmp dword [ebp - 0x40], 0
jne 0x300c1ddb
push 0
push dword [0x301e4968]
call fcn.30055f22
push eax
call dword [sym.imp.GDI32.dll_SelectClipRgn]
lea esi, [ebx + 0x1c]
lea edi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp - 0x58]
push dword [0x301e4968]
call fcn.30055f22
push eax
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
xor eax, eax
push eax
push eax
push eax
lea ecx, [ebp - 0x68]
push ecx
push 6
push eax
push eax
push dword [0x301e4968]
call fcn.30055f22
push eax
call fcn.3000c67d
lea esi, [ebx + 0x1c]
lea edi, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [ebp - 0x50]
test byte [ebx + 0xb], 0x40
je 0x300c1db5
test byte [0x301e4ce8], 2
lea esi, [ebp - 0x58]
lea edi, [ebp - 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x300c1db0
lea eax, [ebp - 0x78]
push eax
push dword [ebx]
call fcn.3015305f
lea eax, [ebp - 0x78]
jmp 0x300c1db8
lea eax, [ebp - 0x58]
push eax
push dword [0x301ddbd8]
push ebx
call fcn.300bcfa6
push dword [0x301ddbd8]
push dword [ebp + 8]
call dword [fcn.30001430]
push eax
call dword [sym.imp.GDI32.dll_SelectClipRgn]
lea eax, [ebp - 0x3c]
push eax
push ebx
call fcn.300bb292
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 8]
call dword [fcn.30001464]
push dword [ebp + 8]
call dword [fcn.300014bc]
xor esi, esi
cmp dword [ebp + 0x10], esi
jne 0x300c1e0b
lea eax, [ebp + 0xc]
push eax
call fcn.3000eeb2
lea eax, [ebp - 0x7c]
push eax
call fcn.3000ee4a
push dword [ebp - 0x48]
call fcn.30056487
mov eax, esi
jmp 0x300c280a
push ebx
call fcn.300b3f96
jmp 0x300c280a
push dword [ebx]
call fcn.30056487
push dword [ebp + 8]
mov dword [ebp - 0x48], eax
call dword [fcn.300014c0]
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 8]
call dword [fcn.30001698]
mov eax, dword [0x301e4968]
mov eax, dword [eax + 0x1c]
mov edi, dword [sym.imp.MSO.DLL_Ordinal_497]
mov dword [ebp - 0x7c], eax
call edi
test eax, eax
je 0x300c1ea0
call edi
push eax
call dword [sym.imp.MSO.DLL_Ordinal_114]
push dword [ebx + 4]
mov esi, eax
call dword [fcn.300014a8]
cmp esi, eax
jne 0x300c1ea0
push dword [ebx + 4]
call dword [fcn.30001488]
test eax, eax
jne 0x300c1e97
test byte [0x301ddd70], 8
je 0x300c1e97
push 0x43
jmp 0x300c1e99
push 0x41
pop eax
push eax
call fcn.3000ee96
lea eax, [ebp - 0x68]
push eax
push ebx
call fcn.300bdde2
push dword [ebp + 8]
call dword [fcn.300014bc]
xor esi, esi
inc esi
jmp 0x300c1e0b
mov eax, 0x10e
cmp edi, eax
ja 0x300c24b0
je 0x300c2427
add eax, 0xffffffae
cmp edi, eax
ja 0x300c227b
je 0x300c27fa
mov eax, 0xb0
cmp edi, eax
ja 0x300c220c
je 0x300c21fe
sub edi, 0x30
je 0x300c20f7
sub edi, 0x20
je 0x300c20d2
dec edi
je 0x300c1ff2
sub edi, 0x30
je 0x300c1f21
sub edi, 6
jne 0x300c287d
add eax, 0xffffffd9
jmp 0x300c280a
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x81
push dword [ebp + 8]
call fcn.30055208
test eax, eax
je 0x300c269b
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x68]
push eax
push ebx
call dword [fcn.30001698]
push 0xfffffffffffffff0
push ebx
mov dword [ebp - 0x60], 0x7fff
call esi
push 0x2080
mov edi, eax
push 0xa8
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_347]
test eax, eax
je 0x300c269b
xor esi, esi
push esi
push esi
push esi
push ebx
call dword [fcn.30001430]
push eax
push 0x301e4540
push dword [ebp - 0x48]
call fcn.3000feb3
mov eax, edi
shr eax, 0x15
and eax, 1
push eax
shr edi, 2
and edi, 1
push edi
lea eax, [ebp - 0x68]
push eax
push eax
push dword [ebp - 0x48]
push ebx
call fcn.300085b5
mov edi, eax
mov eax, dword [edi + 8]
test eax, 0x40000000
je 0x300c1fc0
and eax, 0xf7ffffff
mov dword [edi + 8], eax
or byte [edi + 0xa], 0x80
call fcn.30055e8d
push dword [ebp - 0x48]
call fcn.30056487
push 0x41
call fcn.3000ee96
push 0x40
call fcn.3000eefe
call fcn.30055ea6
push edi
push esi
push ebx
call dword [0x30001694]
jmp 0x300c2807
test byte [ebx + 0xb], 0x40
je 0x300c2006
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push 0x51
push ebx
call fcn.30153713
cmp byte [0x301e4d0d], 0
je 0x300c291a
mov eax, dword [0x301e4af0]
xor esi, esi
cmp eax, esi
je 0x300c2027
cmp dword [eax], esi
je 0x300c2027
xor edi, edi
inc edi
jmp 0x300c2029
xor edi, edi
cmp byte [0x301e4d00], 0
mov ebx, dword [ebp + 0x14]
mov cl, byte [ebp + 0x10]
movsx eax, bx
mov byte [0x301e4724], cl
mov dword [0x301e4728], eax
je 0x300c2078
cmp dword [0x301ddc18], esi
je 0x300c2055
mov eax, 0x80
jmp 0x300c208d
cmp dword [0x301e4714], esi
je 0x300c2064
mov eax, 0x81
jmp 0x300c208d
xor eax, eax
cmp dword [0x301ddd88], esi
setne al
lea eax, [eax + eax + 0x86]
jmp 0x300c208d
test byte [0x301e4cec], 1
mov eax, 0xde
jne 0x300c208d
movzx eax, byte [0x301deb64]
movzx ecx, cl
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp dword [0x301ddc14], esi
mov dword [0x301e4720], ecx
je 0x300c20b3
cmp edi, esi
jne 0x300c20b7
push ebx
call fcn.300c9354
test eax, eax
jne 0x300c20c2
cmp edi, esi
je 0x300c20c8
mov eax, ebx
and ah, 3
cmp ax, 4
jne 0x300c20c8
mov dword [0x301e6c30], ebx
call fcn.30006b18
jmp 0x300c291a
cmp byte [0x301e4d0d], 0
je 0x300c291a
mov eax, dword [0x301e469c]
shr eax, 1
and eax, 1
push eax
push dword [ebp + 8]
call fcn.30126575
jmp 0x300c291a
cmp dword [ebp + 0x10], 0
je 0x300c2807
push 0xffffffffffffffff
push 0
push dword [ebp + 0x10]
call fcn.300a9098
test eax, eax
je 0x300c2807
push 0x7a
push 0x61
push eax
push ebx
mov dword [ebx + 0x98], eax
call fcn.30008909
lea eax, [ebp - 0x68]
push eax
push dword [ebx + 4]
call dword [fcn.30001664]
push dword [ebx + 4]
call dword [fcn.300014a8]
mov edi, dword [0x30001668]
lea ecx, [ebp - 0x68]
push ecx
push eax
mov dword [ebp - 0x6c], eax
call edi
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x6c]
call edi
test byte [ebx + 0xa], 4
mov ecx, dword [ebx + 0x7c]
mov edi, ecx
je 0x300c2170
mov eax, dword [ebp - 0x5c]
sub eax, ecx
sub eax, dword [ebp - 0x64]
jmp 0x300c216c
add edi, ecx
cmp edi, eax
jl 0x300c216a
push 0xfffffffffffffff0
push dword [ebp + 8]
call esi
test eax, 0x800000
je 0x300c21ca
push dword [ebx]
mov word [ebp + 0x10], 0x78
call fcn.30056487
mov esi, eax
lea eax, [ebp + 0x14]
push eax
push 0
push 1
lea eax, [ebp + 0x10]
push eax
push dword [0x301e4968]
call fcn.30055f22
push eax
call fcn.3000c2a8
push esi
call fcn.30056487
mov eax, dword [ebp + 0x14]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, eax
cmp eax, ecx
je 0x300c21c8
dec ecx
add edi, ecx
mov eax, dword [ebp - 0x64]
lea ecx, [edi + eax]
push 4
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x60]
sub ecx, dword [ebp - 0x68]
push edi
push ecx
push eax
push dword [ebp - 0x68]
xor esi, esi
push esi
push dword [ebx + 4]
call dword [fcn.3000166c]
push esi
push esi
push 5
push dword [ebx + 4]
call fcn.300c196d
jmp 0x300c2807
mov eax, dword [ebx + 0x68]
shl eax, 0x10
or eax, dword [ebx + 0x64]
jmp 0x300c280a
sub edi, 0xb1
je 0x300c2248
sub edi, 7
je 0x300c223d
dec edi
je 0x300c222f
dec edi
jne 0x300c287d
movzx eax, byte [ebx + 0xd0]
jmp 0x300c280a
push dword [ebp + 0x10]
push ebx
call fcn.300b50c2
jmp 0x300c291a
push ebx
call fcn.300b50b2
jmp 0x300c280a
mov edi, 0x7fff
cmp dword [ebp + 0x14], edi
je 0x300c2268
cmp dword [ebp + 0x10], edi
je 0x300c2268
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.300b72c2
jmp 0x300c269b
push 2
push 0xfffffffffffffffe
push edi
push edi
push 0
push ebx
call fcn.300b5c11
jmp 0x300c269b
mov eax, dword [ebp + 0xc]
mov edi, 0x100
cmp eax, edi
ja 0x300c22ed
je 0x300c2361
sub eax, 0xbd
je 0x300c2930
sub eax, 5
je 0x300c22cd
sub eax, 3
je 0x300c22c2
dec eax
je 0x300c22b7
dec eax
jne 0x300c287d
push ebx
call fcn.300bb84b
jmp 0x300c280a
mov eax, dword [ebx + 0xb4]
jmp 0x300c280a
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x4c], eax
jmp 0x300c291a
push ebx
call fcn.3004be27
push 0
push dword [ebp + 0x14]
call dword [sym.imp.MSO.DLL_Ordinal_295]
push eax
push dword [ebp + 0x14]
push ebx
call fcn.300be3e5
jmp 0x300c280a
sub eax, 0x102
je 0x300c236f
dec eax
dec eax
je 0x300c2361
dec eax
dec eax
je 0x300c236f
sub eax, 7
jne 0x300c287d
cmp byte [0x301e4d0d], 0
je 0x300c291a
call fcn.30008131
push dword [0x301e4728]
call fcn.300080c9
mov eax, dword [0x301e469c]
or al, 4
cmp byte [0x301e4d0d], 0
mov dword [0x301e469c], eax
je 0x300c2342
test eax, 0x80000
jne 0x300c269b
and eax, 0xe00
cmp eax, 0x600
jne 0x300c291a
test byte [ebx + 0xa], 2
jne 0x300c291a
jmp 0x300c269b
call fcn.30049bfb
push eax
mov eax, dword [ebp + 0x10]
shl eax, 0x10
jmp 0x300c23ee
push 0x6e
call dword [fcn.300014f8]
test ax, ax
jge 0x300c23a0
call fcn.30049bfb
test ah, 4
je 0x300c23a0
movzx eax, word [0x301de040]
cmp dword [ebp + 0x10], eax
je 0x300c291a
cmp dword [ebp + 0x10], 0x2e
je 0x300c291a
cmp byte [0x301e4d0d], 0
je 0x300c240c
call fcn.30008131
push dword [0x301e4728]
call fcn.300080c9
cmp byte [0x301e4d0d], 0
je 0x300c23d6
test byte [0x301e469e], 0x10
je 0x300c23d6
mov esi, dword [ebp + 0x10]
test esi, 0xff00
jne 0x300c23e5
push dword [ebp + 8]
push 1
push dword [ebp + 0x10]
call fcn.30048cc7
mov esi, eax
call fcn.30049bfb
push eax
movzx eax, si
push dword [ebp + 0x14]
push eax
push edi
push ebx
call fcn.300bba21
test eax, eax
je 0x300c291a
push ebx
call fcn.300c137f
jmp 0x300c269b
call fcn.30049bfb
push eax
push dword [ebp + 0x14]
push dword [ebp + 8]
push 1
push dword [ebp + 0x10]
call fcn.30048cc7
movzx eax, ax
jmp 0x300c23f1
cmp byte [0x301e4d0d], 0
je 0x300c291a
cmp byte [0x301e4d0e], 0
je 0x300c291a
test byte [0x301e469e], 8
jne 0x300c291a
cmp dword [0x301e3fec], 0
mov edi, 0x200
jne 0x300c2486
call fcn.301264ad
shl eax, 9
xor eax, dword [0x301ddc10]
and eax, edi
xor dword [0x301ddc10], eax
mov eax, dword [0x301ddc10]
shr eax, 9
and eax, 1
mov dword [ebp - 0x6c], eax
je 0x300c291a
test dword [0x301ddc10], edi
je 0x300c291a
push 0x301e6bd4
call dword [sym.imp.MSO.DLL_Ordinal_1681]
and dword [0x301e6bd0], 0
and dword [0x301e6bc4], 0
jmp 0x300c291a
mov eax, 0x300
cmp edi, eax
ja 0x300c27ca
je 0x300c27c2
mov eax, 0x201
cmp edi, eax
ja 0x300c26a2
je 0x300c2715
sub edi, 0x10f
je 0x300c25ec
sub edi, 6
je 0x300c25d5
sub edi, 0xb9
je 0x300c2555
dec edi
je 0x300c254d
sub edi, 0x31
jne 0x300c287d
cmp byte [0x301e4d0d], 0
je 0x300c2521
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x200
push ebx
call fcn.30126af5
test eax, eax
jne 0x300c2807
cmp dword [0x301e46a0], 0
je 0x300c291a
movzx eax, word [ebp + 0x14]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x14]
shr eax, 0x10
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x70]
push eax
push ebx
call fcn.300c17c6
jmp 0x300c2693
mov eax, dword [ebx + 0x48]
jmp 0x300c280a
push ebx
call fcn.3004be27
push 0
push ebx
call fcn.300bb1d4
mov esi, eax
mov eax, dword [ebx + 0x44]
add eax, eax
push eax
push dword [ebx + 0x48]
call dword [sym.imp.MSO.DLL_Ordinal_957]
mov edi, dword [ebp + 0x14]
push edi
call dword [sym.imp.MSO.DLL_Ordinal_295]
mov dword [ebx + 0x48], edi
mov edi, 0x7fff
push edi
mov dword [ebx + 0x40], eax
push 0
inc eax
push ebx
mov dword [ebx + 0x44], eax
call fcn.300bb536
mov ecx, dword [ebx + 0x20]
sub ecx, dword [ebx + 0x10]
lea eax, [ebx + 0xc]
push ecx
mov ecx, dword [ebx + 0x1c]
sub ecx, dword [eax]
push ecx
push eax
call dword [0x300015c4]
push ebx
call fcn.300c137f
push edi
push 0
push ebx
call fcn.300b72c2
neg esi
sbb esi, esi
and esi, 2
push esi
push ebx
call fcn.300bb1d4
push ebx
call fcn.300bce98
jmp 0x300c2807
movsx eax, word [ebp + 0x12]
push eax
movsx eax, word [ebp + 0x10]
push eax
push dword [ebp + 8]
call fcn.300c1203
jmp 0x300c269b
cmp byte [0x301e4d0d], 0
je 0x300c291a
cmp byte [0x301e4d0e], 0
je 0x300c268a
mov eax, dword [0x301e469c]
test eax, 0x80000
jne 0x300c268a
cmp dword [0x301e3fec], 0
mov edi, 0x200
jne 0x300c264b
call fcn.301264ad
shl eax, 9
xor eax, dword [0x301ddc10]
and eax, edi
xor dword [0x301ddc10], eax
mov eax, dword [0x301ddc10]
shr eax, 9
and eax, 1
mov dword [ebp - 0x6c], eax
je 0x300c268a
mov eax, dword [0x301e469c]
test dword [0x301ddc10], edi
je 0x300c268a
and eax, 0xe00
cmp eax, 0x600
jne 0x300c268a
mov edi, 0x301e6bd4
push edi
call dword [sym.imp.MSO.DLL_Ordinal_1681]
push 0x6c
push 0x301e6bc0
push 0
call fcn.30056452
mov eax, dword [ebp + 0x14]
push edi
and eax, 0x38
push eax
push dword [ebx + 4]
call dword [sym.imp.MSO.DLL_Ordinal_1804]
push dword [ebp + 0x14]
push ebx
call fcn.300c1838
test eax, eax
je 0x300c291a
xor eax, eax
jmp 0x300c280a
mov eax, 0x202
cmp edi, eax
je 0x300c2790
inc eax
cmp edi, eax
je 0x300c2715
jbe 0x300c287d
cmp edi, 0x206
jbe 0x300c26ec
cmp edi, 0x288
jne 0x300c287d
cmp byte [0x301e4d0d], 0
je 0x300c291a
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.3012728d
jmp 0x300c280a
cmp byte [0x301e4d0d], 0
je 0x300c291a
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.30126af5
test eax, eax
je 0x300c291a
jmp 0x300c2807
cmp byte [0x301e4d0d], 0
je 0x300c2755
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
push ebx
call fcn.30126af5
test eax, eax
jne 0x300c2807
cmp byte [0x301e4d0d], al
je 0x300c2755
mov eax, dword [0x301e469c]
test eax, 0x40000
je 0x300c2755
shr eax, 1
and eax, 1
push eax
push dword [ebp + 8]
call fcn.30126575
movzx eax, word [ebp + 0x14]
push dword [ebp + 0x10]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x14]
shr eax, 0x10
cmp dword [0x301e46a0], 0
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x70]
je 0x300c2781
push eax
push edi
push ebx
call fcn.300c10bf
jmp 0x300c2693
push 0
push eax
push edi
push ebx
call fcn.300b77eb
jmp 0x300c2693
cmp byte [0x301e4d0d], 0
je 0x300c27aa
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push ebx
call fcn.30126af5
test eax, eax
jne 0x300c2807
cmp dword [0x301e46a0], 0
je 0x300c291a
push ebx
call fcn.300c11cb
jmp 0x300c2693
push ebx
call fcn.300b8348
jmp 0x300c280a
mov eax, 0x522
cmp edi, eax
ja 0x300c285b
je 0x300c2831
mov eax, edi
sub eax, 0x301
je 0x300c2829
dec eax
je 0x300c2821
dec eax
je 0x300c2819
dec eax
je 0x300c22ac
sub eax, 0x21d
jne 0x300c287d
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
push ebx
call fcn.300c1683
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.30056b36
leave
ret 0x10
push ebx
call fcn.300b7aa9
jmp 0x300c280a
push ebx
call fcn.300b781a
jmp 0x300c280a
push ebx
call fcn.300b5aa6
jmp 0x300c280a
mov esi, dword [ebp + 0x10]
test esi, esi
jbe 0x300c269b
lea eax, [esi - 1]
push eax
push dword [ebx + 0x40]
call fcn.30055f82
push esi
push dword [ebp + 0x14]
mov edi, eax
push edi
push dword [ebx + 0x48]
call fcn.3000fe97
mov eax, edi
jmp 0x300c280a
mov eax, edi
sub eax, 0x523
je 0x300c27fa
dec eax
je 0x300c2930
sub eax, 0x7ae6
je 0x300c2916
dec eax
je 0x300c2908
cmp byte [0x301e4d0d], 0
je 0x300c291a
cmp dword [ebp + 0xc], 0
je 0x300c291a
mov edi, dword [0x300015bc]
push 0x30054fe0
call edi
cmp dword [ebp + 0xc], eax
jne 0x300c28b7
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.3012709b
jmp 0x300c280a
push 0x30054fcc
call edi
cmp dword [ebp + 0xc], eax
jne 0x300c28d4
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.30127103
jmp 0x300c280a
cmp byte [0x301e4d0d], 0
je 0x300c28e6
test byte [0x301e469e], 8
jne 0x300c291a
push 0x30054ff0
call edi
cmp dword [ebp + 0xc], eax
jne 0x300c291a
cmp dword [ebp + 0x10], 1
jne 0x300c291a
push dword [ebp + 0x14]
push 6
push ebx
call fcn.30127277
jmp 0x300c280a
mov eax, dword [ebx + 8]
shr eax, 0x11
and eax, 1
jmp 0x300c280a
or byte [ebx + 0xa], 2
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.30055208
jmp 0x300c280a
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x300c2942
push eax
push 1
call fcn.300c57aa
mov eax, dword [ebx + 0x40]
and dword [ebx + 0xd8], 0
lea eax, [eax + eax + 2]
push eax
push 1
call fcn.300c573d
test eax, eax
mov dword [ebx + 0xd8], eax
je 0x300c269b
mov ecx, dword [ebx + 0x40]
lea edx, [ecx + 1]
push edx
push dword [eax]
push ecx
push dword [ebx + 0x48]
call fcn.3000fe97
mov eax, dword [ebx + 0xd8]
jmp 0x300c280a