Function at 0x10049116
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x1008536f
call fcn.1005ccdc
sub esp, 0x294
push ebx
push esi
push edi
push 8
pop ebx
mov dword [ebp - 0x2c], ebx
mov edi, 0x90
push ebx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0xffff8001
cmp ax, cx
jne 0x1004a079
mov eax, dword [0x10161380]
cmp byte [eax + 0x128], 0
jne 0x1004a079
push ebx
call fcn.10048e9d
pop ecx
test al, al
jne 0x1004a079
push 1
lea ecx, [ebp - 0x1a0]
call fcn.10038186
and dword [ebp - 4], 0
lea ecx, [ebp - 0x1a0]
cmp byte [0x10413599], 0
push 0x40
jne 0x100491a1
push 0x12
push str.samp_license.txt
call fcn.1003b675
mov byte [0x10413599], 1
jmp 0x100491ad
push 8
push str.samp_license.txt
call fcn.1003b675
cmp dword [ebp - 0x13c], 0
je 0x1004a06a
xor eax, eax
mov dword [ebp - 0x10], 0xf
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x24], al
push 1
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 1
call fcn.100382df
lea eax, [ebp - 0x2a0]
mov byte [ebp - 4], 2
push eax
mov byte [ebp - 0x28], bl
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor esi, esi
lea eax, [ebp - 0x28]
push esi
push eax
lea eax, [ebp - 0x2a0]
push eax
push esi
push ebx
call dword [sym.imp.USER32.dll_ToAscii]
cmp eax, 1
jne 0x1004a019
movsx eax, byte [ebp - 0x28]
push eax
call fcn.1006dca0
pop ecx
test eax, eax
je 0x100496af
push dword [ebp - 0x28]
lea eax, [ebp - 0xd0]
push eax
call fcn.1004415d
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.10043fa2
add esp, 0x10
cmp ebx, edi
je 0x10049274
cmp ebx, 0x22
je 0x10049274
cmp ebx, 0x23
je 0x10049274
cmp ebx, 0x2e
je 0x10049274
cmp ebx, 0x2d
je 0x10049274
cmp ebx, 0x24
je 0x10049274
cmp ebx, 0x21
je 0x10049274
cmp ebx, 0x13
je 0x10049274
cmp ebx, 0x91
jne 0x10049282
push esi
push 0x10086444
lea ecx, [ebp - 0x24]
call fcn.100047ed
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x100492d7
push ebx
push 0xffffffffffffffa4
lea edi, [ebx + esi]
push esi
jmp 0x100492bc
movzx ecx, byte [edx]
cmp cl, 0xa4
jne 0x100492aa
xor eax, eax
jmp 0x100492af
sbb eax, eax
or eax, 1
test eax, eax
je 0x100492cc
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa4
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1004929e
jmp 0x100492d7
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049329
push ebx
push 0xffffffffffffffa2
lea edi, [ebx + esi]
push esi
jmp 0x1004930e
movzx ecx, byte [edx]
cmp cl, 0xa2
jne 0x100492fc
xor eax, eax
jmp 0x10049301
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004931e
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa2
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x100492f0
jmp 0x10049329
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x1004937b
push ebx
push 0xffffffffffffffbe
lea edi, [ebx + esi]
push esi
jmp 0x10049360
movzx ecx, byte [edx]
cmp cl, 0xbe
jne 0x1004934e
xor eax, eax
jmp 0x10049353
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049370
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbe
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049342
jmp 0x1004937b
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x100493cd
push ebx
push 0xffffffffffffffba
lea edi, [ebx + esi]
push esi
jmp 0x100493b2
movzx ecx, byte [edx]
cmp cl, 0xba
jne 0x100493a0
xor eax, eax
jmp 0x100493a5
sbb eax, eax
or eax, 1
test eax, eax
je 0x100493c2
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffba
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049394
jmp 0x100493cd
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x1004941f
push ebx
push 0xffffffffffffffa5
lea edi, [esi + ebx]
push esi
jmp 0x10049404
movzx ecx, byte [edx]
cmp cl, 0xa5
jne 0x100493f2
xor eax, eax
jmp 0x100493f7
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049414
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa5
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x100493e6
jmp 0x1004941f
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049471
push ebx
push 0xffffffffffffffbd
lea edi, [esi + ebx]
push esi
jmp 0x10049456
movzx ecx, byte [edx]
cmp cl, 0xbd
jne 0x10049444
xor eax, eax
jmp 0x10049449
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049466
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbd
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049438
jmp 0x10049471
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x100494c3
push ebx
push 0x60
lea edi, [esi + ebx]
push esi
jmp 0x100494a8
movzx ecx, byte [edx]
cmp cl, 0x60
jne 0x10049496
xor eax, eax
jmp 0x1004949b
sbb eax, eax
or eax, 1
test eax, eax
je 0x100494b8
inc edx
mov eax, edi
sub eax, edx
push eax
push 0x60
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1004948a
jmp 0x100494c3
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049515
push ebx
push 0xffffffffffffffa1
lea edi, [esi + ebx]
push esi
jmp 0x100494fa
movzx ecx, byte [edx]
cmp cl, 0xa1
jne 0x100494e8
xor eax, eax
jmp 0x100494ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004950a
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa1
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x100494dc
jmp 0x10049515
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049567
push ebx
push 0xffffffffffffff91
lea edi, [esi + ebx]
push esi
jmp 0x1004954c
movzx ecx, byte [edx]
cmp cl, 0x91
jne 0x1004953a
xor eax, eax
jmp 0x1004953f
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004955c
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffff91
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1004952e
jmp 0x10049567
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x100495b9
push ebx
push 0xffffffffffffffae
lea edi, [esi + ebx]
push esi
jmp 0x1004959e
movzx ecx, byte [edx]
cmp cl, 0xae
jne 0x1004958c
xor eax, eax
jmp 0x10049591
sbb eax, eax
or eax, 1
test eax, eax
je 0x100495ae
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffae
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049580
jmp 0x100495b9
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x1004960b
push ebx
push 0xffffffffffffff83
lea edi, [esi + ebx]
push esi
jmp 0x100495f0
movzx ecx, byte [edx]
cmp cl, 0x83
jne 0x100495de
xor eax, eax
jmp 0x100495e3
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049600
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffff83
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x100495d2
jmp 0x1004960b
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x1004965d
push ebx
push 0xffffffffffffffbc
lea edi, [esi + ebx]
push esi
jmp 0x10049642
movzx ecx, byte [edx]
cmp cl, 0xbc
jne 0x10049630
xor eax, eax
jmp 0x10049635
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049652
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbc
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049624
jmp 0x1004965d
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049ff4
push ebx
push 0xffffffffffffffa3
lea edi, [esi + ebx]
push esi
jmp 0x1004969c
movzx ecx, byte [edx]
cmp cl, 0xa3
jne 0x10049686
xor eax, eax
jmp 0x1004968b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049fde
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa3
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1004967a
jmp 0x10049ff4
movsx eax, byte [ebp - 0x28]
push eax
call fcn.1006db80
pop ecx
test eax, eax
je 0x10049b4e
push dword [ebp - 0x28]
lea eax, [ebp - 0xd0]
push eax
call fcn.1004415d
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.10043fa2
add esp, 0x10
cmp ebx, edi
je 0x10049713
cmp ebx, 0x22
je 0x10049713
cmp ebx, 0x23
je 0x10049713
cmp ebx, 0x2e
je 0x10049713
cmp ebx, 0x2d
je 0x10049713
cmp ebx, 0x24
je 0x10049713
cmp ebx, 0x21
je 0x10049713
cmp ebx, 0x13
je 0x10049713
cmp ebx, 0x91
jne 0x10049721
push esi
push 0x10086444
lea ecx, [ebp - 0x24]
call fcn.100047ed
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049776
push ebx
push 0xffffffffffffffa4
lea edi, [esi + ebx]
push esi
jmp 0x1004975b
movzx ecx, byte [edx]
cmp cl, 0xa4
jne 0x10049749
xor eax, eax
jmp 0x1004974e
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004976b
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa4
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1004973d
jmp 0x10049776
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x100497c8
push ebx
push 0xffffffffffffffa2
lea edi, [esi + ebx]
push esi
jmp 0x100497ad
movzx ecx, byte [edx]
cmp cl, 0xa2
jne 0x1004979b
xor eax, eax
jmp 0x100497a0
sbb eax, eax
or eax, 1
test eax, eax
je 0x100497bd
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa2
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1004978f
jmp 0x100497c8
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x1004981a
push ebx
push 0xffffffffffffffbe
lea edi, [esi + ebx]
push esi
jmp 0x100497ff
movzx ecx, byte [edx]
cmp cl, 0xbe
jne 0x100497ed
xor eax, eax
jmp 0x100497f2
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004980f
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbe
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x100497e1
jmp 0x1004981a
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x1004986c
push ebx
push 0xffffffffffffffba
lea edi, [esi + ebx]
push esi
jmp 0x10049851
movzx ecx, byte [edx]
cmp cl, 0xba
jne 0x1004983f
xor eax, eax
jmp 0x10049844
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049861
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffba
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049833
jmp 0x1004986c
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x100498be
push ebx
push 0xffffffffffffffa5
lea edi, [esi + ebx]
push esi
jmp 0x100498a3
movzx ecx, byte [edx]
cmp cl, 0xa5
jne 0x10049891
xor eax, eax
jmp 0x10049896
sbb eax, eax
or eax, 1
test eax, eax
je 0x100498b3
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa5
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049885
jmp 0x100498be
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049910
push ebx
push 0xffffffffffffffbd
lea edi, [esi + ebx]
push esi
jmp 0x100498f5
movzx ecx, byte [edx]
cmp cl, 0xbd
jne 0x100498e3
xor eax, eax
jmp 0x100498e8
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049905
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbd
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x100498d7
jmp 0x10049910
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049962
push ebx
push 0x60
lea edi, [esi + ebx]
push esi
jmp 0x10049947
movzx ecx, byte [edx]
cmp cl, 0x60
jne 0x10049935
xor eax, eax
jmp 0x1004993a
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049957
inc edx
mov eax, edi
sub eax, edx
push eax
push 0x60
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049929
jmp 0x10049962
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x100499b4
push ebx
push 0xffffffffffffffa1
lea edi, [esi + ebx]
push esi
jmp 0x10049999
movzx ecx, byte [edx]
cmp cl, 0xa1
jne 0x10049987
xor eax, eax
jmp 0x1004998c
sbb eax, eax
or eax, 1
test eax, eax
je 0x100499a9
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa1
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1004997b
jmp 0x100499b4
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049a06
push ebx
push 0xffffffffffffff91
lea edi, [esi + ebx]
push esi
jmp 0x100499eb
movzx ecx, byte [edx]
cmp cl, 0x91
jne 0x100499d9
xor eax, eax
jmp 0x100499de
sbb eax, eax
or eax, 1
test eax, eax
je 0x100499fb
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffff91
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x100499cd
jmp 0x10049a06
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049a58
push ebx
push 0xffffffffffffffae
lea edi, [esi + ebx]
push esi
jmp 0x10049a3d
movzx ecx, byte [edx]
cmp cl, 0xae
jne 0x10049a2b
xor eax, eax
jmp 0x10049a30
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049a4d
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffae
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049a1f
jmp 0x10049a58
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049aaa
push ebx
push 0xffffffffffffff83
lea edi, [esi + ebx]
push esi
jmp 0x10049a8f
movzx ecx, byte [edx]
cmp cl, 0x83
jne 0x10049a7d
xor eax, eax
jmp 0x10049a82
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049a9f
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffff83
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049a71
jmp 0x10049aaa
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049afc
push ebx
push 0xffffffffffffffbc
lea edi, [esi + ebx]
push esi
jmp 0x10049ae1
movzx ecx, byte [edx]
cmp cl, 0xbc
jne 0x10049acf
xor eax, eax
jmp 0x10049ad4
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049af1
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbc
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049ac3
jmp 0x10049afc
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049ff4
push ebx
push 0xffffffffffffffa3
lea edi, [esi + ebx]
push esi
jmp 0x10049b3b
movzx ecx, byte [edx]
cmp cl, 0xa3
jne 0x10049b25
xor eax, eax
jmp 0x10049b2a
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049fde
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa3
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049b19
jmp 0x10049ff4
movsx eax, byte [ebp - 0x28]
push eax
call fcn.1006daf0
pop ecx
test eax, eax
je 0x1004a00e
push dword [ebp - 0x28]
lea eax, [ebp - 0xd0]
push eax
call fcn.1004415d
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.10043fa2
add esp, 0x10
cmp ebx, edi
je 0x10049bb2
cmp ebx, 0x22
je 0x10049bb2
cmp ebx, 0x23
je 0x10049bb2
cmp ebx, 0x2e
je 0x10049bb2
cmp ebx, 0x2d
je 0x10049bb2
cmp ebx, 0x24
je 0x10049bb2
cmp ebx, 0x21
je 0x10049bb2
cmp ebx, 0x13
je 0x10049bb2
cmp ebx, 0x91
jne 0x10049bc0
push esi
push 0x10086444
lea ecx, [ebp - 0x24]
call fcn.100047ed
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049c15
push ebx
push 0xffffffffffffffa4
lea edi, [esi + ebx]
push esi
jmp 0x10049bfa
movzx ecx, byte [edx]
cmp cl, 0xa4
jne 0x10049be8
xor eax, eax
jmp 0x10049bed
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049c0a
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa4
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049bdc
jmp 0x10049c15
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049c67
push ebx
push 0xffffffffffffffa2
lea edi, [ebx + esi]
push esi
jmp 0x10049c4c
movzx ecx, byte [edx]
cmp cl, 0xa2
jne 0x10049c3a
xor eax, eax
jmp 0x10049c3f
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049c5c
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa2
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049c2e
jmp 0x10049c67
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049cb9
push ebx
push 0xffffffffffffffbe
lea edi, [ebx + esi]
push esi
jmp 0x10049c9e
movzx ecx, byte [edx]
cmp cl, 0xbe
jne 0x10049c8c
xor eax, eax
jmp 0x10049c91
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049cae
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbe
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049c80
jmp 0x10049cb9
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049d0b
push ebx
push 0xffffffffffffffba
lea edi, [ebx + esi]
push esi
jmp 0x10049cf0
movzx ecx, byte [edx]
cmp cl, 0xba
jne 0x10049cde
xor eax, eax
jmp 0x10049ce3
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049d00
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffba
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049cd2
jmp 0x10049d0b
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049d5d
push ebx
push 0xffffffffffffffa5
lea edi, [ebx + esi]
push esi
jmp 0x10049d42
movzx ecx, byte [edx]
cmp cl, 0xa5
jne 0x10049d30
xor eax, eax
jmp 0x10049d35
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049d52
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa5
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049d24
jmp 0x10049d5d
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049daf
push ebx
push 0xffffffffffffffbd
lea edi, [ebx + esi]
push esi
jmp 0x10049d94
movzx ecx, byte [edx]
cmp cl, 0xbd
jne 0x10049d82
xor eax, eax
jmp 0x10049d87
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049da4
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbd
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049d76
jmp 0x10049daf
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049e01
push ebx
push 0x60
lea edi, [ebx + esi]
push esi
jmp 0x10049de6
movzx ecx, byte [edx]
cmp cl, 0x60
jne 0x10049dd4
xor eax, eax
jmp 0x10049dd9
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049df6
inc edx
mov eax, edi
sub eax, edx
push eax
push 0x60
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049dc8
jmp 0x10049e01
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049e53
push ebx
push 0xffffffffffffffa1
lea edi, [ebx + esi]
push esi
jmp 0x10049e38
movzx ecx, byte [edx]
cmp cl, 0xa1
jne 0x10049e26
xor eax, eax
jmp 0x10049e2b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049e48
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa1
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049e1a
jmp 0x10049e53
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049ea5
push ebx
push 0xffffffffffffff91
lea edi, [ebx + esi]
push esi
jmp 0x10049e8a
movzx ecx, byte [edx]
cmp cl, 0x91
jne 0x10049e78
xor eax, eax
jmp 0x10049e7d
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049e9a
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffff91
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049e6c
jmp 0x10049ea5
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049ef7
push ebx
push 0xffffffffffffffae
lea edi, [ebx + esi]
push esi
jmp 0x10049edc
movzx ecx, byte [edx]
cmp cl, 0xae
jne 0x10049eca
xor eax, eax
jmp 0x10049ecf
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049eec
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffae
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049ebe
jmp 0x10049ef7
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049f49
push ebx
push 0xffffffffffffff83
lea edi, [ebx + esi]
push esi
jmp 0x10049f2e
movzx ecx, byte [edx]
cmp cl, 0x83
jne 0x10049f1c
xor eax, eax
jmp 0x10049f21
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049f3e
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffff83
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049f10
jmp 0x10049f49
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049f97
push ebx
push 0xffffffffffffffbc
lea edi, [ebx + esi]
push esi
jmp 0x10049f80
movzx ecx, byte [edx]
cmp cl, 0xbc
jne 0x10049f6e
xor eax, eax
jmp 0x10049f73
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049f90
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffbc
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049f62
jmp 0x10049f97
sub edx, esi
cmp edx, 0xffffffff
jne 0x10049fe5
cmp dword [ebp - 0x10], 0x10
lea esi, [ebp - 0x24]
cmovae esi, dword [ebp - 0x24]
cmp ebx, 1
jb 0x10049ff4
push ebx
push 0xffffffffffffffa3
lea edi, [ebx + esi]
push esi
jmp 0x10049fce
movzx ecx, byte [edx]
cmp cl, 0xa3
jne 0x10049fbc
xor eax, eax
jmp 0x10049fc1
sbb eax, eax
or eax, 1
test eax, eax
je 0x10049fde
inc edx
mov eax, edi
sub eax, edx
push eax
push 0xffffffffffffffa3
push edx
call fcn.1005fda0
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x10049fb0
jmp 0x10049ff4
sub edx, esi
cmp edx, 0xffffffff
je 0x10049ff4
push 0
push 0x10086444
lea ecx, [ebp - 0x24]
call fcn.100047ed
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x190]
push eax
call fcn.1004413e
mov ebx, dword [ebp - 0x2c]
mov edi, 0x90
pop ecx
pop ecx
lea ecx, [ebp - 0x1a0]
call fcn.1003b620
lea ecx, [ebp - 0xe0]
call fcn.10038520
mov eax, dword [ebp - 0x10]
cmp eax, 0x10
jb 0x1004a05b
mov ecx, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
cmp eax, 0x1000
jb 0x1004a052
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10003e9d
mov eax, dword [ebp - 0x30]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
push eax
push ecx
call fcn.1005ccc7
pop ecx
pop ecx
and dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
mov byte [ebp - 0x24], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1a0]
call fcn.1003843c
inc ebx
mov dword [ebp - 0x2c], ebx
cmp ebx, 0xbe
jle 0x10049134
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret