Function at 0x4121bb
Capabilities:
Check for time delay via gettickcount
Check http status code
Log keystrokes via polling

Disassembly:
sub esp, 0x28
push ebx
mov ebx, dword [esp + 0x34]
push ebp
push esi
push edi
mov edi, dword [esp + 0x3c]
push 0
push ebx
push edi
mov ebp, dword [edi + 0x4c]
mov esi, dword [edi + 0x24]
mov eax, dword [edi + 0x28]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x48], esi
mov dword [esp + 0x2c], eax
call fcn.00414140
xor ecx, ecx
inc ecx
cmp ebx, 0x27
ja 0x412635
je 0x412614
cmp ebx, 0x22
ja 0x41256e
je 0x412226
mov eax, ebx
sub eax, 8
je 0x412400
sub eax, ecx
je 0x412302
sub eax, 4
je 0x412264
sub eax, 0x14
jne 0x4122cb
mov eax, dword [edi + 0x14]
cdq
idiv dword [0x430d30]
mov ecx, dword [edi + 0xc]
mov esi, dword [edi + 0x28]
mov dword [esp + 0x40], eax
cmp ebx, 0x21
jne 0x41252e
sub ecx, eax
sub esi, eax
xor eax, eax
mov dword [edi + 0x28], esi
test ecx, ecx
cmovs ecx, eax
mov dword [edi + 0xc], ecx
test esi, esi
jns 0x41255b
and dword [edi + 0x28], eax
jmp 0x41255b
push edi
call fcn.00411ffc
test eax, eax
je 0x412274
push edi
call fcn.004108bf
push 0xd
push dword [edi + 0x28]
push dword [edi + 0x24]
push 0
push edi
call fcn.0041f8b8
push 0xd
push dword [edi + 0x28]
push dword [edi + 0x24]
push 0
push edi
call fcn.00416c02
xor eax, eax
inc eax
push eax
push edi
call fcn.0041294e
push dword [edi + 0x28]
push dword [edi + 0x24]
push 0
push edi
call fcn.0041f89c
xor eax, eax
push 0
inc eax
push edi
mov byte [ebp + 0x22], al
call fcn.004100a1
xor eax, eax
inc eax
push eax
push 0
push dword [edi]
call dword [sym.imp.USER32.dll_InvalidateRect]
xor ecx, ecx
inc ecx
push ecx
push ebx
push edi
call fcn.00414140
push ebx
call fcn.0040fde5
test eax, eax
je 0x4122f8
push dword [esp + 0x20]
push esi
push 3
push edi
call fcn.0041f89c
push dword [edi + 0x28]
push dword [edi + 0x24]
push 3
push edi
call fcn.0041f89c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 8
xor esi, esi
cmp dword [0x4305c4], esi
jne 0x412314
call dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x412331
and dword [esp + 0x40], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x4305c4]
cmp eax, 0x190
mov eax, dword [esp + 0x40]
sbb esi, esi
neg esi
push edi
mov dword [0x4305c4], eax
call fcn.00411ffc
test eax, eax
je 0x41236d
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
push 4
bt ax, 0xf
pop eax
push 0xfffffffffffffffc
pop ecx
cmovb eax, ecx
push eax
push edi
call fcn.0040fbdd
and dword [0x4305c4], 0
mov esi, dword [esp + 0x3c]
jmp 0x4122c8
push edi
call fcn.0041341f
test eax, eax
je 0x412364
or dword [edi + 0x20], 0xffffffff
test esi, esi
je 0x412385
test byte [edi + 0x24], 7
je 0x412364
mov eax, dword [edi + 0x24]
push 0x20
lea esi, [eax + 4]
and esi, 0xfffffffc
sub esi, eax
lea eax, [esp + 0x28]
push esi
push eax
call fcn.00403f4a
push esi
lea eax, [esp + 0x28]
push eax
push dword [edi + 0x28]
push dword [edi + 0x24]
push 0
push edi
call fcn.0041f8d6
push 0
push esi
lea eax, [esp + 0x2c]
push eax
push dword [edi + 0x28]
push dword [edi + 0x24]
push 0
push edi
call fcn.00416c22
push esi
lea eax, [esp + 0x28]
push eax
push edi
call fcn.00411fdc
push dword [edi + 0x28]
push dword [edi + 0x24]
push 0
push edi
call fcn.0041f89c
xor eax, eax
inc eax
push edi
mov byte [ebp + 0x22], al
call fcn.0040fee6
test eax, eax
jne 0x412364
push edi
call fcn.00410a69
jmp 0x412364
xor eax, eax
push edi
mov dword [esp + 0x14], eax
call fcn.00411ffc
test eax, eax
jne 0x4126a2
or esi, 0xffffffff
mov dword [edi + 0x20], esi
cmp dword [edi + 0x24], eax
jne 0x41247c
cmp dword [edi + 0x28], eax
je 0x412364
push 0xd
push dword [edi + 0x28]
push eax
push 2
push edi
call fcn.0041f8b8
dec dword [edi + 0x28]
push esi
push edi
call fcn.00411221
push edi
mov dword [edi + 0x24], eax
call fcn.00412109
push dword [edi + 0x28]
push dword [edi + 0x24]
push 2
push edi
call fcn.0041f89c
push 0xd
push dword [edi + 0x28]
xor eax, eax
push dword [edi + 0x24]
inc eax
push eax
push edi
call fcn.00416c02
xor eax, eax
inc eax
push eax
push 0
push dword [edi]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x412364
push eax
push esi
push esi
push edi
call fcn.00414608
push eax
push edi
mov dword [esp + 0x1c], eax
call fcn.004102b3
push 1
pop ecx
push dword [edi + 0x28]
test eax, eax
push dword [edi + 0x24]
cmove eax, ecx
push 2
push edi
mov dword [esp + 0x2c], eax
call fcn.0041f89c
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
dec eax
dec ebx
push esi
push eax
push edi
mov dword [esp + 0x20], eax
call fcn.0041031a
push edi
mov dword [edi + 0x24], eax
call fcn.00410828
push eax
push dword [edi + 0x28]
mov dword [esp + 0x18], eax
push dword [edi + 0x24]
push 2
push edi
call fcn.0041f8b8
push dword [esp + 0x10]
xor eax, eax
push dword [edi + 0x28]
inc eax
push dword [edi + 0x24]
push eax
push edi
call fcn.00416c02
mov eax, dword [esp + 0x10]
cmp eax, 0x2a
je 0x412502
cmp eax, 0x2f
jne 0x412503
inc ebp
test ebx, ebx
jne 0x4124b2
push edi
mov dword [esp + 0x14], ebp
call fcn.0040fee6
mov ebp, dword [esp + 0x18]
xor eax, eax
inc eax
cmp dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x40]
mov byte [ebp + 0x22], al
je 0x412364
jmp 0x412469
lea edx, [ecx + eax]
add esi, eax
mov dword [edi + 0xc], edx
mov dword [edi + 0x28], esi
mov eax, dword [ebp + 4]
sub eax, dword [esp + 0x40]
push 0
pop ecx
cmovns ecx, eax
mov eax, edx
cmp edx, ecx
cmovg eax, ecx
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 4]
cmp esi, eax
jl 0x41255b
dec eax
mov dword [edi + 0x28], eax
push 0
push edi
call fcn.004100a1
push edi
call fcn.0040fee6
jmp 0x412469
mov eax, ebx
sub eax, 0x23
je 0x4125fc
sub eax, 1
je 0x4125df
sub eax, 1
je 0x4125ae
sub eax, 1
jne 0x4122cb
mov eax, dword [edi + 0x28]
cmp ebx, 0x26
jne 0x412787
test eax, eax
je 0x4122cb
push edi
call fcn.00410226
dec dword [edi + 0x28]
jmp 0x41279a
or esi, 0xffffffff
cmp dword [edi + 0x24], 0
mov dword [edi + 0x20], esi
je 0x412854
push esi
push 0
push esi
push esi
push edi
call fcn.00414608
dec eax
push eax
push edi
call fcn.0041031a
push edi
mov dword [edi + 0x24], eax
call fcn.0040fee6
jmp 0x412364
or dword [edi + 0x20], 0xffffffff
cmp dword [edi + 0x24], 0
je 0x4122cb
and dword [edi + 0x24], 0
push edi
call fcn.0040fee6
jmp 0x4122c8
or esi, 0xffffffff
push esi
push edi
mov dword [edi + 0x20], esi
call fcn.00411221
cmp dword [edi + 0x24], eax
je 0x412364
jmp 0x4125d1
or esi, 0xffffffff
cmp dword [edi + 0x24], 0x1000
mov dword [edi + 0x20], esi
jge 0x412854
push esi
push 0
push esi
push esi
push edi
call fcn.00414608
inc eax
jmp 0x4125ca
cmp ebx, 0x45
ja 0x4127be
je 0x4127a5
mov eax, ebx
sub eax, 0x28
je 0x41258c
sub eax, 6
je 0x412693
sub eax, 0x13
je 0x41267b
dec eax
sub eax, 1
jne 0x4122cb
cmp byte [0x4305c0], cl
jne 0x4122cb
push ecx
push edi
call fcn.004160c6
jmp 0x4122c8
cmp byte [0x4305c0], 3
jne 0x4122cb
push edi
call fcn.004164cb
jmp 0x4122c8
and dword [esp + 0x1c], 0
push edi
call fcn.00411ffc
test eax, eax
je 0x4126ad
push edi
call fcn.004108bf
jmp 0x4122c8
push 0xffffffffffffffff
push edi
call fcn.00411221
cmp dword [edi + 0x24], eax
jl 0x41270a
mov eax, dword [ebp + 4]
dec eax
cmp dword [edi + 0x28], eax
jge 0x4122c8
push edi
call fcn.00412109
push 0xd
push dword [edi + 0x28]
xor eax, eax
push dword [edi + 0x24]
inc eax
push eax
push edi
call fcn.0041f8b8
push 0xd
push dword [edi + 0x28]
xor eax, eax
push dword [edi + 0x24]
inc eax
push eax
push edi
call fcn.00416c02
xor eax, eax
inc eax
push eax
push 0
push dword [edi]
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
call fcn.0041095f
jmp 0x4122c8
push edi
call fcn.00410253
mov ebx, dword [esp + 0x1c]
mov esi, eax
push 1
test esi, esi
pop eax
cmove esi, eax
push edi
dec esi
call fcn.00410828
mov ebp, eax
xor eax, eax
push ebp
push dword [edi + 0x28]
inc eax
push dword [edi + 0x24]
push eax
push edi
call fcn.0041f8b8
push ebp
push dword [edi + 0x28]
xor eax, eax
push dword [edi + 0x24]
inc eax
push eax
push edi
call fcn.00416c02
cmp ebp, 0x2a
je 0x412753
cmp ebp, 0x2f
jne 0x412754
inc ebx
test esi, esi
jne 0x41271e
mov eax, dword [esp + 0x18]
xor ecx, ecx
inc ecx
mov byte [eax + 0x22], cl
test ebx, ebx
je 0x412772
push ecx
push esi
push dword [edi]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x412778
push edi
call fcn.00410a69
push edi
call fcn.0041095f
mov ebx, dword [esp + 0x40]
jmp 0x412364
inc eax
cmp eax, dword [ebp + 4]
jge 0x4122cb
push edi
call fcn.00410226
inc dword [edi + 0x28]
push edi
call fcn.0040f915
jmp 0x4125f1
cmp byte [0x4305c0], 2
jne 0x4122cb
push ecx
push edi
call fcn.0040f133
jmp 0x4122c8
cmp ebx, 0x46
je 0x412823
cmp ebx, 0x4b
je 0x412810
cmp ebx, 0x4f
je 0x4127f9
cmp ebx, 0x53
jne 0x4122cb
cmp byte [0x4305c0], 2
jne 0x4122cb
push 0
push 0x52
push 0x111
push dword [edi]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4122c8
cmp byte [0x4305c0], cl
jne 0x4122cb
push edi
call fcn.0040f430
jmp 0x4122c8
cmp byte [0x4305c0], cl
jne 0x4122cb
push 0
jmp 0x412670
mov al, byte [0x4305c0]
cmp al, 2
jne 0x412830
push 0
jmp 0x4127b3
cmp al, 3
jne 0x412841
push 0
push edi
call fcn.0041692d
jmp 0x4122c8
cmp al, cl
jne 0x4122cb
push edi
call fcn.0040f85f
jmp 0x4122c8
mov esi, dword [esp + 0x3c]
jmp 0x4122cb