Function at 0x440a40
Capabilities:
Get keyboard layout
Log keystrokes via polling

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x104
mov eax, dword [0x526b24]
xor eax, ebp
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x7c]
push ebx
push esi
mov esi, dword [ebp + 0x70]
push edi
mov dword [ebp + 0xc], eax
cmp word [esi], 0
je case.0x440b2f.0
mov eax, dword [0x62271c]
mov ecx, dword fs:[0x2c]
lea edi, [eax*4]
mov eax, dword [ecx + edi]
mov dword [ebp + 0x1c], edi
cmp byte [eax + 0x2198], 0
jne 0x440a99
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
mov edx, dword [eax + 0x29c]
mov dword [ebp - 0x34], edx
jne 0x440aba
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
xor bh, bh
mov ecx, dword [ebp + 0x74]
mov dword [ebp - 0xc], ecx
mov eax, dword [eax + 0x298]
mov eax, dword [eax + 0x6f0]
mov dword [ebp - 0x7c], eax
mov eax, dword fs:[0x24]
mov dword [ebp - 0x58], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov dword [ebp + 4], eax
test ecx, ecx
jne 0x440b5e
push 6
push str.Blind
push esi
call eax
add esp, 0xc
test eax, eax
jne 0x440b5b
mov eax, dword fs:[0x2c]
add esi, 0xc
mov dword [ebp - 8], esi
mov eax, dword [eax + edi]
mov byte [eax + 0x8f5], 1
movzx eax, word [esi]
cmp eax, 0x7d
je 0x440b75
mov ecx, eax
nop word [eax + eax]
movzx eax, cx
cmp eax, 0x5e
ja case.0x440b2f.1
movzx eax, byte [eax + 0x442520]
jmp dword [eax*4 + 0x442508]
or bh, 3
jmp case.0x440b2f.1
or bh, 0x30
jmp case.0x440b2f.1
or bh, 0xc
jmp case.0x440b2f.1
or bh, 0xc0
movzx eax, word [esi + 2]
add esi, 2
mov dword [ebp - 8], esi
mov ecx, eax
cmp eax, 0x7d
jne 0x440b20
jmp 0x440b75
mov ecx, dword [ebp - 0xc]
mov eax, dword fs:[0x2c]
mov dword [ebp - 8], esi
mov eax, dword [eax + edi]
mov byte [eax + 0x8f5], 0
test ecx, ecx
jne 0x440b94
push 6
push 0x4f968c
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x440b94
add esi, 0xc
mov dword [ebp - 0xc], 2
mov dword [ebp - 8], esi
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp + 0x78]
mov dword [ebp - 0x28], edx
mov ecx, dword [eax + 0x6c]
mov eax, dword [eax + 0x74]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x68], eax
cmp edx, 1
je 0x440bb3
cmp edx, 3
jne 0x440c1c
call fcn.00436360
test al, al
jne 0x440be6
cmp dword [ebp - 0xc], 0
jne 0x440bdd
call fcn.004363e0
test al, al
je 0x440bdd
push 0x4f99f8
push esi
call fcn.004e6500
add esp, 8
test eax, eax
jne 0x440be6
mov dword [ebp - 0x28], 1
jmp 0x440c1c
cmp dword [ebp - 0x28], 3
jne 0x440bf5
mov dword [ebp - 0x28], 2
jmp 0x440c1c
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x28], 0
cmp dword [ecx + 0x6c], 0
jge 0x440c10
cmp dword [ecx + 0x74], 0
jge 0x440c10
or eax, 0xffffffff
jmp 0x440c12
xor eax, eax
mov dword [ecx + 0x74], eax
mov dword [ecx + 0x6c], 0xffffffff
mov ecx, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, esi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], ecx
mov ecx, dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [ebp - 0x60], ecx
mov ecx, dword [sym.imp.USER32.dll_AttachThreadInput]
mov byte [ebp + 2], 0
mov dword [ebp - 0x5c], ecx
test eax, eax
je 0x440cdf
push esi
push eax
mov eax, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [ebp - 0x44], eax
call eax
mov dword [ebp - 0x38], eax
test eax, eax
je 0x440e31
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x440c7e
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov ecx, dword [ebp - 0x38]
cmp ecx, dword [eax + 0x250]
je 0x440e31
push dword [ebp + 0xc]
call fcn.004e92a0
add esp, 4
test al, al
jne 0x440e31
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x440cc2
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov esi, dword [ebp - 0x38]
push 1
push esi
push dword [eax + 0x250]
call dword [ebp - 0x5c]
test eax, eax
setne byte [ebp + 2]
jmp 0x440e31
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x440cf6
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi]
mov eax, dword [ecx + 0x298]
test byte [eax + 0x6b2], 0xc0
je 0x440dee
cmp byte [ecx + 0x2198], 0
jne 0x440d20
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov esi, dword [eax + edi]
call dword [ebp - 0x24]
mov ecx, eax
mov eax, dword [esi + 0x298]
sub ecx, dword [eax + 0x6a8]
cmp ecx, 0x32
jae 0x440dee
cmp dword [ebp - 0x28], 2
je 0x440dee
cmp byte [esi + 0x8f5], 0
jne 0x440dee
mov ecx, dword [ebp - 0xc]
cmp ecx, 2
je 0x440dee
cmp byte [esi + 0x2198], 0
jne 0x440d77
call fcn.004ebad3
mov ecx, dword [ebp - 0xc]
mov eax, dword fs:[0x2c]
mov edx, dword [ebp - 0x58]
mov eax, dword [eax + edi]
cmp edx, dword [eax + 0x250]
jne 0x440dee
mov esi, dword [ebp - 8]
test ecx, ecx
je 0x440f51
mov edi, esi
test esi, esi
je 0x440de1
movzx eax, word [esi]
test ax, ax
je 0x440de1
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4f9a08
mov edx, 0x4c
nop word [eax + eax]
cmp si, dx
je 0x440de3
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x440dc0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x440db0
xor edi, edi
test edi, edi
jne 0x440ffd
mov edi, dword [ebp + 0x1c]
call dword [ebp - 0x60]
mov ecx, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
xor esi, esi
mov dword [ebp - 0x44], ecx
test eax, eax
je 0x440e2b
push esi
push eax
call ecx
mov esi, eax
mov dword [ebp + 0x24], 0x30
lea eax, [ebp + 0x24]
push eax
push esi
call dword [sym.imp.USER32.dll_GetGUIThreadInfo]
test eax, eax
je 0x440e2b
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x440e2b
push 0
push ecx
call dword [ebp - 0x44]
mov esi, eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x38], eax
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov ecx, dword fs:[0x2c]
push eax
mov ecx, dword [ecx + edi]
mov dword [ecx + 0x914], eax
call fcn.0043e410
mov ecx, dword fs:[0x2c]
push 1
mov ecx, dword [ecx + edi]
mov dword [ecx + 0x900], eax
call fcn.0043d7d0
mov ecx, dword fs:[0x2c]
mov bl, al
add esp, 8
mov byte [ebp - 0x2c], bl
mov ecx, dword [ecx + edi]
and byte [ecx + 0x8f6], bl
cmp byte [ecx + 0x2198], 0
jne 0x440e8b
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp dword [eax + 0x1f4], 0
mov cl, byte [eax + 0x2198]
je 0x44109a
test cl, cl
jne 0x440eb0
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
mov cl, byte [eax + 0x145]
mov byte [ebp + 0x21], cl
jne 0x440ed0
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x440ee7
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov cl, byte [eax + 0x147]
and cl, byte [eax + 0x145]
cmp byte [eax + 0x2198], 0
mov byte [ebp + 0x23], cl
jne 0x440f0d
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x440f24
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov cl, byte [ebp + 0x23]
mov esi, dword [eax + edi]
mov dl, byte [esi + 0x145]
mov al, byte [esi + 0x147]
mov ah, dl
not ah
not dl
or ah, al
or dl, al
mov byte [ebp], ah
mov byte [ebp + 3], dl
jmp 0x441110
test esi, esi
je 0x440deb
movzx eax, word [esi]
test ax, ax
je 0x440deb
mov edi, eax
nop word [eax + eax]
mov ecx, 0x4f9a08
mov edx, 0x4c
nop word [eax + eax]
cmp di, dx
je 0x440fa6
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x440f80
movzx eax, word [esi + 2]
add esi, 2
mov edi, eax
test ax, ax
jne 0x440f70
jmp 0x440deb
add esi, 2
je 0x440ffd
movzx eax, word [esi]
test ax, ax
je 0x440ffd
mov edi, eax
nop word [eax + eax]
mov eax, 0x4f9a10
mov edx, 0x7b
nop word [eax + eax]
cmp di, dx
je 0x440ff3
movzx ecx, word [eax + 2]
add eax, 2
mov edx, ecx
test cx, cx
jne 0x440fd0
movzx eax, word [esi + 2]
add esi, 2
mov edi, eax
test ax, ax
jne 0x440fc0
jmp 0x440ffd
cmp word [esi], 0x7b
jne 0x440f51
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edi, dword [ebp + 0x1c]
push 0x5b
call esi
bt ax, 0xf
jb 0x441020
push 0x5c
call esi
bt ax, 0xf
jae 0x440dee
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x44103f
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
mov dword [eax + 0x1d8], 0
jne 0x44105a
call fcn.004ebad3
push 1
push 0x8000012f
call fcn.00415b90
mov ecx, dword fs:[0x2c]
add esp, 8
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x441088
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov dword [eax + 0x1d8], 1
jmp 0x441006
test cl, cl
jne 0x4410a3
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x4410ba
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov esi, dword [eax + edi]
call dword [ebp - 0x24]
mov ecx, dword [esi + 0x298]
sub eax, dword [ecx + 0x6a8]
cmp eax, dword [esi + 0x1fc]
jae 0x441101
cmp byte [esi + 0x2198], 0
jne 0x4410e8
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov esi, dword [eax + edi]
mov eax, dword [esi + 0x298]
mov al, byte [eax + 0x6b2]
and al, bl
jmp 0x441103
xor al, al
mov byte [ebp + 0x21], al
mov cl, al
mov byte [ebp], 0xff
mov byte [ebp + 3], 0xff
mov al, byte [esi + 0x8f5]
not cl
and cl, byte [esi + 0x8fa]
and cl, bl
mov byte [ebp + 0x1b], 0
mov byte [ebp + 0x23], cl
mov byte [esi + 0x8fa], cl
test al, al
je 0x44114d
mov cl, bl
mov byte [ebp + 0x23], cl
mov byte [ebp + 0x16], cl
test bh, bh
je 0x441150
mov dl, bh
not dl
and dl, bl
mov cl, dl
xor dl, bl
mov byte [ebp + 0x23], cl
mov byte [ebp + 0x1b], dl
mov byte [ebp + 0x16], cl
mov ecx, dword [ebp - 0x34]
cmp byte [ecx + 0x98], 0
je 0x441177
test al, al
jne 0x441177
cmp dword [ebp - 0xc], 2
je 0x441177
push 2
push 0x14
call fcn.00443700
add esp, 8
mov dword [ebp - 0x64], eax
jmp 0x44117e
mov dword [ebp - 0x64], 0
mov eax, dword fs:[0x2c]
mov ebx, 0x1f4
mov edx, dword [ebp - 0x28]
mov ecx, dword [eax + edi]
mov eax, 0x5dc
mov dword [ecx + 0x8f0], edx
test edx, edx
je 0x4411cd
cmp edx, 1
mov esi, ebx
mov ebx, 0x2ee0
cmovne esi, eax
mov eax, 0x36b0
cmovne eax, ebx
mov dword [ecx + 0x904], esi
call fcn.004ec520
mov eax, esp
push dword [ebp - 0x2c]
push esi
push eax
call fcn.0043da90
add esp, 0xc
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x4411e4
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
mov cl, byte [eax + 0x121]
mov byte [ebp - 0x1a], cl
jne 0x441204
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp dword [eax + 0x158], 7
je 0x441236
cmp byte [eax + 0x2198], 0
jne 0x441224
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp dword [eax + 0x158], 9
jne 0x441255
cmp dword [eax + 0x8f0], 0
jne 0x441255
cmp dword [ebp + 0xc], 0
jne 0x441255
push 1
mov byte [ebp + 1], 1
call fcn.0046cee0
add esp, 4
jmp 0x441259
mov byte [ebp + 1], 0
mov ebx, dword [ebp - 8]
xor dl, dl
mov byte [ebp + 0x22], dl
mov byte [ebp + 8], dl
cmp word [ebx], 0
je 0x442061
nop
mov eax, dword fs:[0x2c]
mov byte [ebp + 0x1a], 0
mov eax, dword [eax + edi]
cmp dword [eax + 0x8f0], 0
jne 0x4413a2
call dword [ebp - 0x24]
mov ecx, dword fs:[0x2c]
mov esi, eax
mov ecx, dword [ecx + edi]
cmp byte [ecx + 0x2198], 0
jne 0x4412a7
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + edi]
mov eax, dword [ecx + 0x298]
sub esi, dword [eax + 0x6f0]
cmp byte [ecx + 0x2198], 0
jne 0x4412cb
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov eax, dword [eax + 0x29c]
cmp esi, dword [eax + 0x5c]
jbe 0x44139f
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x44136e
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x44131b
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
mov dword [eax + 0x1d8], 0
jne 0x441336
call fcn.004ebad3
push 1
push 0xffffffffffffffff
call fcn.00415b90
mov ecx, dword fs:[0x2c]
add esp, 8
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x441361
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov dword [eax + 0x1d8], 1
call dword [ebp - 0x24]
mov esi, eax
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi]
cmp byte [ecx + 0x2198], 0
jne 0x441390
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov eax, dword [eax + 0x298]
mov dword [eax + 0x6f0], esi
mov dl, byte [ebp + 0x22]
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x441f7c
movzx eax, word [ebx]
push eax
push 0x4f9a18
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x441f69
movzx eax, word [ebx]
add eax, 0xffffffdf
cmp eax, 0x5c
ja case.0x4413dc.34
movzx eax, byte [eax + 0x44259c]
jmp dword [eax*4 + 0x442580]
test byte [ebp + 0x23], 3
jne case.0x4413dc.34
mov dl, byte [ebp + 0x22]
or dl, 1
jmp 0x44203c
test byte [ebp + 0x23], 0x30
jne case.0x4413dc.34
mov dl, byte [ebp + 0x22]
or dl, 0x10
jmp 0x44203c
test byte [ebp + 0x23], 0xc
jne case.0x4413dc.34
mov dl, byte [ebp + 0x22]
or dl, 4
jmp 0x44203c
test byte [ebp + 0x23], 0xc0
jne case.0x4413dc.34
mov dl, byte [ebp + 0x22]
or dl, 0x40
jmp 0x44203c
lea esi, [ebx + 2]
push 0x7d
push esi
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
je case.0x4413dc.34
mov ebx, esi
movzx ecx, word [ebx]
cmp ecx, 0x20
je 0x44145f
cmp ecx, 9
jne 0x441464
add ebx, 2
jmp 0x441452
mov esi, eax
mov dword [ebp - 8], ebx
sub esi, ebx
sar esi, 1
mov dword [ebp - 0x40], esi
jne 0x4414ef
lea esi, [eax + 2]
movzx eax, word [esi]
cmp eax, 0x7d
jne 0x441485
mov dword [ebp - 0x10], esi
lea esi, [eax - 0x7c]
jmp 0x4414ec
cmp eax, 0x20
je 0x441493
cmp eax, 9
jne 0x441f59
cmp ax, 0x20
je 0x44149f
cmp ax, 9
jne 0x4414a8
movzx eax, word [esi + 2]
add esi, 2
jmp 0x441493
push 4
push str.Down
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
je 0x4414d0
push 2
push 0x4f863c
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x441f59
push 0x7d
push esi
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
je case.0x4413dc.34
mov esi, eax
sub esi, ebx
sar esi, 1
mov dword [ebp - 0x40], esi
push 5
push str.Click
push ebx
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x4415aa
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov word [eax], cx
lea ecx, [ebx + 0xa]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x44151d
cmp eax, 9
jne 0x441522
add ecx, 2
jmp 0x441510
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x12]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
push ecx
call fcn.0043ede0
mov eax, dword [ebp - 0x10]
add esp, 0x1c
mov ecx, 0x7d
push dword [ebp - 0x4c]
mov word [eax], cx
mov eax, dword [ebp - 0x48]
cmp eax, 1
jge 0x441580
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + 0x97]
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.0043eb50
mov ebx, dword [ebp - 0x10]
add esp, 0x14
jmp 0x44203a
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp + 0xc]
push 0
push dword [ebp - 4]
push eax
push dword [ebp + 0x16]
push dword [ebp + 8]
push 0
push dword [ebp + 0x12]
call fcn.00440490
mov ebx, dword [ebp - 0x10]
add esp, 0x2c
jmp 0x44203a
push 3
push 0x4f9a34
push ebx
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x4415cb
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0xc], 1
jmp 0x44203a
push 4
push str.Text
push ebx
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x44160a
lea ecx, [ebx + 8]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x4415ed
cmp eax, 9
jne 0x4415f2
add ecx, 2
jmp 0x4415e0
cmp ecx, dword [ebp - 0x10]
jne 0x441f59
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0xc], 2
jmp 0x44203a
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov edx, 1
mov dword [ebp - 4], 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x48], edx
mov word [eax], cx
movzx eax, word [ebx]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x30], ebx
test ax, ax
je 0x44173a
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x4f94c4
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x441682
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x441650
mov eax, dword [ebp - 0x30]
add eax, 2
mov dword [ebp - 0x30], eax
movzx eax, word [eax]
mov esi, eax
test ax, ax
jne 0x441640
mov dword [ebp - 0x30], 0
jmp 0x44173f
mov edx, dword [ebp - 0x30]
movzx eax, word [edx]
lea esi, [edx + 2]
mov dword [ebp - 0x70], eax
xor eax, eax
mov word [edx], ax
mov eax, edx
sub eax, ebx
sar eax, 1
mov dword [ebp - 0x3c], eax
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x20
je 0x4416ad
cmp eax, 9
jne 0x4416b2
add esi, 2
jmp 0x4416a0
mov eax, dword [ebp - 0x10]
sub eax, esi
sar eax, 1
je 0x44173f
push 4
push str.Down
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x44170d
push 4
add esi, 8
mov dword [ebp - 4], eax
push str.Temp
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x4416ee
mov dword [ebp - 0x2c], eax
jmp 0x44173f
xor eax, eax
cmp word [esi], 0x52
sete al
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
add esp, 4
neg eax
sbb edx, edx
neg edx
inc edx
mov dword [ebp - 0x2c], edx
jmp 0x44173f
push 0x4f863c
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x441729
mov dword [ebp - 4], 1
jmp 0x44173f
push esi
call fcn.004e6170
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x48], eax
jmp 0x44173f
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov ecx, dword [eax + 0x914]
movzx eax, word [ebx]
test ax, ax
je 0x4417f2
cmp word [ebx + 2], 0
jne 0x44177e
push 1
push ecx
lea ecx, [ebp + 8]
push ecx
push eax
call fcn.0043cef0
mov bl, al
add esp, 0x10
mov al, byte [ebp + 8]
mov byte [ebp + 0x22], al
jmp 0x441905
push eax
call fcn.0043c2a0
add esp, 4
cmp ax, 0x56
jne 0x4417c6
movzx eax, word [ebx + 2]
push eax
call fcn.0043c2a0
add esp, 4
cmp ax, 0x4b
jne 0x4417c6
push 0x10
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebx + 4]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
movzx ecx, al
xor ebx, ebx
mov eax, dword [ebp - 0x6c]
add esp, 0xc
cmp word [eax], bx
cmove ebx, ecx
jmp 0x441905
xor esi, esi
cmp dword [0x5230c8], esi
jle 0x4417f2
push ebx
push dword [esi*8 + 0x523200]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x4418fe
inc esi
cmp esi, dword [0x5230c8]
jl 0x4417d0
xor bl, bl
mov byte [ebp + 0x12], bl
mov dword [ebp - 0x20], ebx
mov esi, dword [ebp - 8]
push 0
push esi
call fcn.00443130
movzx edi, ax
add esp, 8
test di, di
jne 0x441875
push 2
push 0x4f94fc
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x441875
push 0x10
lea eax, [ebp - 0x14]
push eax
lea eax, [esi + 4]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstoul]
push 2
push 0x4f9b94
push dword [ebp - 0x14]
mov byte [ebp - 0x19], al
call dword [ebp + 4]
add esp, 0x18
test eax, eax
jne 0x441875
push 0x10
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x14]
add eax, 4
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstoul]
movzx ecx, ax
add esp, 0xc
mov eax, dword [ebp - 0x14]
cmp word [eax], di
jne 0x441875
mov bl, byte [ebp - 0x19]
mov edi, ecx
mov dword [ebp - 0x20], ebx
mov byte [ebp + 0x12], bl
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x441882
mov ecx, dword [ebp - 0x70]
mov word [eax], cx
cmp dword [ebp - 0x18], 1
mov ecx, 0x7d
mov eax, dword [ebp - 0x10]
mov word [eax], cx
jl 0x441f56
test bl, bl
jne 0x441e6f
test di, di
jne 0x441e6f
movzx eax, byte [esi]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
add esp, 4
test eax, eax
mov eax, dword [ebp - 0x3c]
je 0x4419c7
cmp eax, 1
jbe 0x4419ca
mov ecx, dword fs:[0x2c]
mov edi, dword [ebp + 0x1c]
mov eax, dword [ecx + edi]
cmp dword [eax + 0x8f0], 0
je 0x44191d
push esi
call fcn.004e6170
push eax
push 0
push 0
push 0
push 0
call fcn.0043fb60
mov ebx, dword [ebp - 0x10]
add esp, 0x18
jmp 0x44203a
mov bl, byte [esi*8 + 0x523204]
mov dword [ebp - 0x20], ebx
mov byte [ebp + 0x12], bl
test bl, bl
je 0x4417fa
mov esi, dword [ebp - 8]
xor edi, edi
jmp 0x441875
cmp byte [eax + 0x2198], 0
jne 0x441932
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
mov dword [eax + 0x1d8], 0
jne 0x441954
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov ecx, dword [ebp - 0x58]
cmp dword [eax + 0x250], ecx
je 0x441981
push esi
call fcn.004e6170
add esp, 4
test eax, eax
js 0x441981
push esi
call fcn.004e6170
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x441995
push 1
push esi
call fcn.004e6170
add esp, 4
push eax
call fcn.00415b90
add esp, 8
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x4419ac
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ebx, dword [ebp - 0x10]
mov eax, dword [eax + edi]
mov dword [eax + 0x1d8], 1
jmp 0x44203a
cmp eax, 1
jne 0x441a35
cmp dword [ebp - 4], 1
je 0x441f56
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x441a11
mov ebx, dword [ebp - 0x18]
test ebx, ebx
jle 0x441f56
mov edi, dword [sym.imp.USER32.dll_PostMessageW]
nop
movzx eax, word [esi]
push 0
push eax
push 0x102
push ecx
call edi
mov ecx, dword [ebp + 0xc]
sub ebx, 1
jne 0x4419f0
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x10]
jmp 0x44203a
mov al, byte [ebp + 0x22]
or al, byte [ebp + 0x23]
movzx eax, al
push eax
push dword [ebp - 0x18]
movzx eax, word [esi]
push eax
call fcn.004407f0
mov edi, dword [ebp + 0x1c]
add esp, 0xc
mov ebx, dword [ebp - 0x10]
jmp 0x44203a
mov ebx, dword [ebp + 0xc]
test ebx, ebx
mov edi, dword [ebp - 0x40]
sete al
movzx eax, al
push eax
lea eax, [ebp + 0x16]
push eax
lea eax, [ebp - 4]
push eax
push edi
push esi
call fcn.00443220
add esp, 0x14
mov byte [ebp + 0x12], al
test al, al
je 0x441c22
mov esi, dword [ebp - 4]
test ebx, ebx
mov ebx, dword [ebp + 0x12]
jne 0x441a7d
test esi, esi
jne 0x441a74
mov byte [ebp + 0x1a], al
jmp 0x441a7d
push ebx
call fcn.0043d220
add esp, 4
mov eax, dword fs:[0x2c]
mov edi, dword [ebp + 0x1c]
mov eax, dword [eax + edi]
cmp dword [eax + 0x8f0], 0
je 0x441a9a
mov al, byte [eax + 0x8f4]
jmp 0x441aa4
push 0
call fcn.0043d7d0
add esp, 4
push 0xffc3d44d
push 0
push 0
push dword [ebp + 0xc]
push eax
push dword [ebp + 0x16]
call fcn.00442980
add esp, 0x18
cmp dword [ebp - 0x18], 0
jle 0x441cdf
push 0xffc3d44d
push 1
push dword [ebp + 0xc]
push 0
push ebx
push esi
call fcn.0043db20
mov eax, dword fs:[0x2c]
add esp, 0x18
mov eax, dword [eax + edi]
cmp dword [eax + 0x8f0], 0
jne 0x441c0a
call dword [ebp - 0x24]
mov ecx, dword fs:[0x2c]
mov esi, eax
mov ecx, dword [ecx + edi]
cmp byte [ecx + 0x2198], 0
jne 0x441b0f
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + edi]
mov eax, dword [ecx + 0x298]
sub esi, dword [eax + 0x6f0]
cmp byte [ecx + 0x2198], 0
jne 0x441b33
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov eax, dword [eax + 0x29c]
cmp esi, dword [eax + 0x5c]
jbe 0x441c07
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x441bd6
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x441b83
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
mov dword [eax + 0x1d8], 0
jne 0x441b9e
call fcn.004ebad3
push 1
push 0xffffffffffffffff
call fcn.00415b90
mov ecx, dword fs:[0x2c]
add esp, 8
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x441bc9
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov dword [eax + 0x1d8], 1
call dword [ebp - 0x24]
mov esi, eax
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi]
cmp byte [ecx + 0x2198], 0
jne 0x441bf8
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov eax, dword [eax + 0x298]
mov dword [eax + 0x6f0], esi
mov esi, dword [ebp - 4]
sub dword [ebp - 0x18], 1
jne 0x441ac6
mov al, byte [ebp + 0x16]
mov ebx, dword [ebp - 0x10]
mov byte [ebp + 0x23], al
jmp 0x44203a
cmp edi, 4
jbe 0x441ced
push 4
push str.ASC
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x441cf6
test ebx, ebx
jne 0x441cf6
lea ecx, [esi + 6]
nop dword [eax]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x441c5d
cmp eax, 9
jne 0x441c62
add ecx, 2
jmp 0x441c50
push ecx
call fcn.0043ffc0
mov ecx, dword fs:[0x2c]
add esp, 4
mov edi, dword [ebp + 0x1c]
mov eax, dword [ecx + edi]
cmp dword [eax + 0x8f0], 2
mov dl, byte [eax + 0x2198]
jne 0x441cba
test dl, dl
jne 0x441c97
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov eax, dword [eax + 0x29c]
mov eax, dword [eax + 0x70]
push eax
call fcn.0043d2b0
mov al, byte [ebp + 0x16]
add esp, 4
mov ebx, dword [ebp - 0x10]
mov byte [ebp + 0x23], al
jmp 0x44203a
test dl, dl
jne 0x441cca
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov eax, dword [eax + 0x29c]
mov eax, dword [eax + 0x6c]
push eax
call fcn.0043d2b0
add esp, 4
mov al, byte [ebp + 0x16]
mov ebx, dword [ebp - 0x10]
mov byte [ebp + 0x23], al
jmp 0x44203a
cmp edi, 2
jbe 0x441e5e
push 2
push 0x4f9a60
push esi
call dword [ebp + 4]
add esp, 0xc
test eax, eax
jne 0x441e5e
push 0x10
push eax
lea eax, [esi + 4]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
mov edx, eax
add esp, 0xc
cmp edx, 0x10000
jb 0x441d51
sub edx, 0x10000
mov ecx, edx
mov eax, edx
shr ecx, 0xa
and eax, 0x3ff
and ecx, 0x3ff
sub ecx, 0x2800
sub eax, 0x2400
movzx ecx, cx
movzx esi, ax
jmp 0x441d56
movzx ecx, dx
xor esi, esi
mov al, byte [ebp + 0x16]
mov byte [ebp + 0x23], al
test ebx, ebx
je 0x441dd4
mov edi, dword [sym.imp.USER32.dll_PostMessageW]
push 0
movzx eax, cx
push eax
push 0x102
push ebx
call edi
test si, si
je 0x441d87
push 0
movzx eax, si
push eax
push 0x102
push ebx
call edi
mov edi, dword [ebp + 0x1c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
cmp dword [eax + 0x8f0], 2
mov dl, byte [eax + 0x2198]
jne 0x441e31
test dl, dl
jne 0x441db7
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov eax, dword [eax + 0x29c]
mov eax, dword [eax + 0x70]
push eax
call fcn.0043d2b0
mov ebx, dword [ebp - 0x10]
add esp, 4
jmp 0x44203a
mov eax, dword fs:[0x2c]
mov edi, dword [ebp + 0x1c]
mov eax, dword [eax + edi]
cmp dword [eax + 0x8f0], 2
je 0x441e0a
mov bl, byte [ebp + 0x22]
or bl, byte [ebp + 0x23]
push ebx
push ecx
call fcn.00442620
add esp, 8
test si, si
je 0x441d8a
push ebx
push esi
call fcn.00442620
add esp, 8
jmp 0x441d8a
mov eax, 0x30
mov word [ebp + 0x54], ax
lea eax, [ebp + 0x56]
push 0xa
push eax
push edx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itow]
lea eax, [ebp + 0x54]
push eax
call fcn.0043ffc0
add esp, 0x10
jmp 0x441d8a
test dl, dl
jne 0x441e41
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov eax, dword [eax + 0x29c]
mov eax, dword [eax + 0x6c]
push eax
call fcn.0043d2b0
mov ebx, dword [ebp - 0x10]
add esp, 4
jmp 0x44203a
mov al, byte [ebp + 0x16]
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x10]
mov byte [ebp + 0x23], al
jmp 0x44203a
mov esi, dword [ebp + 0x12]
push 0
push edi
push esi
call fcn.0043e280
mov bl, al
add esp, 0xc
mov byte [ebp - 0x74], bl
test bl, bl
je 0x441f2e
cmp dword [ebp + 0xc], 0
jne 0x441f2e
mov eax, dword [ebp - 4]
test eax, eax
jne 0x441ee1
mov al, byte [ebp - 0x20]
mov byte [ebp + 0x1a], al
mov eax, dword [ebp - 0x2c]
cmp eax, 1
jne 0x441ec3
mov eax, dword fs:[0x2c]
mov ecx, dword [ebp + 0x1c]
mov bh, byte [ebp + 0x23]
mov eax, dword [eax + ecx]
or byte [eax + 0x8fa], bl
or bh, bl
jmp 0x441f28
cmp eax, 2
jne 0x441eda
mov eax, dword fs:[0x2c]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [eax + ecx]
or byte [eax + 0x8f6], bl
mov bh, byte [ebp + 0x23]
or bh, bl
jmp 0x441f28
cmp eax, 1
jne 0x441f2e
push esi
call fcn.0043d220
mov ecx, dword [ebp + 0x1c]
not bl
mov eax, dword fs:[0x2c]
add esp, 4
mov eax, dword [eax + ecx]
and byte [eax + 0x8fa], bl
and byte [eax + 0x8f6], bl
and bl, byte [ebp + 0x23]
cmp byte [ebp - 0x20], 0xa5
mov cl, bl
mov byte [ebp + 0x23], cl
mov byte [ebp + 0x16], cl
jne 0x441f2e
cmp dword [eax + 0x900], 3
jne 0x441f2e
mov bh, bl
and bh, 0xfe
mov byte [ebp + 0x16], bh
mov byte [ebp + 0x23], bh
push 0
push connect
push connect
push dword [ebp + 0xc]
push dword [ebp - 0x74]
push dword [ebp - 4]
push dword [ebp - 0x18]
push dword [ebp + 0x16]
push dword [ebp + 8]
push edi
push esi
call fcn.00440490
add esp, 0x2c
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x10]
jmp 0x44203a
mov dl, byte [ebp + 0x22]
jmp 0x442042
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp + 0x22]
or al, byte [ebp + 0x23]
je 0x441fb6
test ecx, ecx
jne 0x441fb6
mov al, 1
jmp 0x441fb8
cmp ecx, 2
jne 0x441f6c
movzx eax, word [ebx]
add eax, 0xfffffff8
cmp eax, 5
ja case.0x441f8c.11
jmp dword [eax*4 + 0x4425fc]
cmp word [ebx + 2], 0xa
lea eax, [ebx + 2]
cmove ebx, eax
mov byte [ebp + 0x12], 0xd
jmp 0x441fdf
mov byte [ebp + 0x12], 8
jmp 0x441fdf
mov byte [ebp + 0x12], 9
jmp 0x441fdf
mov byte [ebp + 0x12], 0
jmp 0x44200d
xor al, al
push eax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
push dword [eax + 0x914]
lea eax, [ebp + 8]
push eax
movzx eax, word [ebx]
push eax
call fcn.0043cef0
add esp, 0x10
mov byte [ebp + 0x12], al
test al, al
je 0x44200a
mov esi, dword [ebp + 0xc]
push 0
push connect
push connect
push esi
push 0
push 2
push 1
push dword [ebp + 0x16]
push dword [ebp + 8]
push 0
push dword [ebp + 0x12]
call fcn.00440490
add esp, 0x2c
jmp 0x44203a
mov dl, byte [ebp + 8]
mov esi, dword [ebp + 0xc]
movzx ecx, word [ebx]
test esi, esi
je 0x442028
push 0
push ecx
push 0x102
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x44203a
or dl, byte [ebp + 0x23]
movzx eax, dl
push eax
push 1
push ecx
call fcn.004407f0
add esp, 0xc
xor dl, dl
mov byte [ebp + 8], dl
mov byte [ebp + 0x22], dl
mov eax, dword fs:[0x2c]
add ebx, 2
mov cl, byte [ebp + 0x1a]
cmp word [ebx], 0
mov eax, dword [eax + edi]
mov byte [eax + 0x90c], cl
jne 0x441270
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi]
cmp dword [ecx + 0x8f0], 0
je 0x4421c5
cmp byte [ecx + 0x8f8], 0
mov dword [ebp - 0x2c], 0xffffffff
jne 0x4420da
cmp dword [ecx + 0x8fc], 0
jbe 0x4420da
cmp byte [ecx + 0x8f5], 0
jne 0x4420a2
mov al, byte [ebp + 3]
and al, byte [ebp + 0x21]
mov byte [ebp + 0x1b], al
mov al, byte [ecx + 0x8f6]
or al, byte [ebp + 0x1b]
or al, byte [ebp + 0x23]
push 0xffc3d44d
push 1
push 1
mov byte [ebp - 0x14], al
movzx eax, byte [ecx + 0x8f4]
mov esi, dword [ebp - 0x14]
push 0
push eax
push esi
call fcn.00442980
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.00440070
add esp, 0x20
mov eax, dword fs:[0x2c]
mov ecx, 0x5dc
mov edx, 0x1f4
mov eax, dword [eax + edi]
cmp dword [eax + 0x8f0], 1
cmove ecx, edx
cmp dword [eax + 0x904], ecx
jbe 0x44210e
push dword [eax + 0x898]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov edi, dword fs:[0x24]
mov esi, dword [ebp - 0x2c]
mov dword [eax + 0x8f0], 0
test esi, esi
js 0x4421bd
cmp byte [eax + 0x2198], 0
jne 0x442141
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ecx + ebx]
cmp byte [eax + 0x2198], 0
mov dword [eax + 0x1d8], 0
jne 0x44216d
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + ebx]
cmp dword [eax + 0x250], edi
je 0x442181
push esi
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x44218c
push 1
push esi
call fcn.00415b90
add esp, 8
mov eax, dword fs:[0x2c]
mov edi, ebx
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x4421a5
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
mov dword [eax + 0x1d8], 1
jmp 0x4422ea
mov edi, dword [ebp + 0x1c]
jmp 0x4422ea
cmp byte [ecx + 0x2198], 0
jne 0x4421d3
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp dword [eax + 0x1f4], 0
mov cl, byte [eax + 0x2198]
je 0x442208
test cl, cl
jne 0x4421f4
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov bl, byte [ebp + 0x21]
mov esi, dword [eax + edi]
mov dl, byte [esi + 0x145]
jmp 0x442274
test cl, cl
jne 0x442211
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov esi, dword [eax + edi]
cmp dword [esi + 0x1fc], 0
jl 0x44226f
cmp byte [esi + 0x2198], 0
jne 0x442231
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x442248
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov esi, dword [eax + edi]
call dword [ebp - 0x24]
mov ecx, dword [esi + 0x298]
sub eax, dword [ecx + 0x6a8]
cmp eax, dword [esi + 0x1fc]
jb 0x44226f
mov bl, byte [ebp + 0x21]
xor dl, dl
jmp 0x442274
mov bl, byte [ebp + 0x21]
mov dl, bl
or dl, byte [esi + 0x8f6]
cmp byte [esi + 0x8f5], 0
je 0x44229e
mov cl, dl
xor cl, bl
mov al, cl
and cl, dl
and al, bl
mov bl, byte [ebp + 0x23]
or bl, byte [ebp + 0x1b]
not al
and al, bl
or al, cl
mov byte [ebp - 0x14], al
jmp 0x4422a7
and dl, byte [ebp]
or dl, byte [ebp + 0x23]
mov byte [ebp - 0x14], dl
cmp byte [esi + 0x2198], 0
jne 0x4422b5
call fcn.004ebad3
push 0xffc3d44d
push 1
push 1
push dword [ebp + 0xc]
push 0
call fcn.0043d7d0
mov ecx, dword fs:[0x2c]
add esp, 4
mov ecx, dword [ecx + edi]
or al, byte [ecx + 0x144]
movzx eax, al
push eax
push dword [ebp - 0x14]
call fcn.00442980
add esp, 0x18
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x442301
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp dword [eax + 0x1f4], 0
je 0x442387
cmp byte [eax + 0x2198], 0
jne 0x442321
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x442338
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x44234f
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi]
mov al, byte [ecx + 0x146]
mov bl, byte [ecx + 0x147]
xor bl, al
and bl, al
cmp byte [ecx + 0x2198], 0
jne 0x442376
call fcn.004ebad3
mov eax, dword fs:[0x2c]
not bl
mov eax, dword [eax + edi]
and byte [eax + 0x146], bl
cmp dword [ebp - 0x64], 1
jne 0x442399
push 1
push 0x14
call fcn.00443700
add esp, 8
cmp byte [ebp + 2], 0
je 0x4423cd
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x4423b6
call fcn.004ebad3
mov eax, dword fs:[0x2c]
push 0
push dword [ebp - 0x38]
mov eax, dword [eax + edi]
push dword [eax + 0x250]
call dword [ebp - 0x5c]
cmp byte [ebp + 1], 0
je 0x4423e3
cmp byte [ebp - 0x1a], 0
jne 0x4423e3
push 0
call fcn.0046cee0
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x44243d
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x442401
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [eax + edi]
mov eax, dword [eax + 0x298]
cmp dword [eax + 0x6f0], ecx
je 0x4424de
call fcn.00415400
test eax, eax
je 0x4424de
push 1
push 0xffffffffffffffff
call fcn.00415b90
add esp, 8
jmp 0x4424de
cmp eax, 1
jne 0x4424de
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
jne 0x44245d
call fcn.004ebad3
mov eax, dword fs:[0x2c]
push 0
mov esi, dword [eax + edi]
call dword [ebp - 0x60]
push eax
call dword [ebp - 0x44]
cmp eax, dword [esi + 0x250]
jne 0x4424de
cmp byte [esi + 0x2198], 0
jne 0x442485
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + edi]
cmp byte [eax + 0x2198], 0
mov dword [eax + 0x1d8], 0
jne 0x4424a6
call fcn.004ebad3
push 1
push 0xffffffffffffffff
call fcn.00415b90
mov ecx, dword fs:[0x2c]
add esp, 8
mov eax, dword [ecx + edi]
cmp byte [eax + 0x2198], 0
jne 0x4424d1
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + edi]
mov dword [eax + 0x1d8], 1
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x78]
mov dword [eax + 0x6c], ecx
mov ecx, dword [ebp - 0x68]
mov dword [eax + 0x74], ecx
lea esp, [ebp - 0xa8]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x64]
xor ecx, ebp
call fcn.004ebadf
lea esp, [ebp + 0x68]
pop ebp
ret