Function at 0x40b3f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xad4
push ebx
push esi
push edi
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [0x45bd3c], 0
mov byte [0x45bd40], 0
mov byte [0x45f758], 0
call fcn.0042acd0
mov al, byte [0x45f782]
mov byte [0x45cff8], 0
test al, al
mov dword [0x45b8e4], 0
je 0x40b46a
mov byte [0x45bd40], 0xff
call fcn.0040b350
mov al, byte [0x45cff8]
test al, al
jne 0x40b485
call fcn.0040ecf0
test eax, eax
je 0x40e8ff
push 0x45d240
push 0x45d140
call fcn.0040ab80
add esp, 8
lea eax, [esp + 0x114]
lea ecx, [esp + 0x118]
lea edx, [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0x14]
xor edi, edi
push edx
push eax
mov dword [esp + 0x38], edi
call fcn.0040b090
add esp, 0x10
cmp eax, edi
mov dword [esp + 0x18], eax
je 0x40e92a
mov edx, dword [esp + 0xc]
mov eax, edx
and eax, 0xffff
cmp eax, 0x4700
je 0x40b503
cmp eax, 0x4f00
je 0x40b503
lea ecx, [esp + 0xf4]
lea edx, [esp + 0x34]
push ecx
push edx
push 0xb
mov dword [esp + 0x40], edi
call fcn.0043ee50
mov edx, dword [esp + 0x18]
add esp, 0xc
mov esi, dword [esp + 0x10]
cmp dx, 0x11b
je 0x40e908
cmp dx, 0x2e03
je 0x40e908
cmp dx, 0x1c0d
jne 0x40baa2
mov edx, dword [0x45d3a0]
push edx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
call fcn.0042acd0
test byte [0x45b8e4], 1
je 0x40b577
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40b56f
push edi
push edi
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov eax, dword [eax + 4]
mov dword [0x45d3a0], eax
mov ecx, dword [0x45d3a0]
mov dword [0x45b8e4], edi
mov eax, dword [ecx + 8]
cmp eax, edi
je 0x40b5a1
push 1
push eax
call fcn.0040f0b0
mov ecx, dword [0x45d3a0]
mov esi, eax
add esp, 8
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edi
cmp eax, edi
jne 0x40b5b4
mov dword [esp + 0x18], 1
mov al, byte [0x45bd3c]
test al, al
mov eax, dword [0x45d7c0]
jne 0x40b631
mov ebx, dword [eax + 4]
cmp ebx, edi
jne 0x40b5f5
cmp dword [eax + 8], ecx
jne 0x40b5d3
cmp dword [ecx + 8], edi
je 0x40b629
cmp ebx, edi
jne 0x40b5f5
cmp dword [eax + 8], ecx
jne 0x40b5f5
mov edx, dword [esi + 6]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jne 0x40b5f5
cmp byte [edx], 0x20
je 0x40b629
test ebx, ebx
jne 0x40b631
mov edx, dword [0x45d7c0]
mov ecx, dword [0x45d3a0]
cmp dword [edx + 8], ecx
jne 0x40b631
mov esi, dword [esi + 6]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jne 0x40b631
cmp byte [esi], 0x20
jne 0x40b631
cmp byte [esi + 1], 0x20
jne 0x40b631
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40e890
mov al, byte [0x45bd3c]
test al, al
jne 0x40b705
mov ecx, dword [0x45d7c0]
mov eax, dword [ecx + 4]
test eax, eax
jne 0x40b6f3
mov eax, dword [ecx + 8]
push 0x45d240
push 0x45d140
mov dword [0x45d3a0], eax
call fcn.0040ab80
add esp, 8
push 0xa
call fcn.0041ee80
add esp, 4
call fcn.0042a800
test eax, eax
mov dword [0x45d39c], eax
je 0x40e8ff
mov ecx, dword [0x45d7c0]
mov dword [ecx + 4], eax
mov eax, dword [0x45d39c]
mov edx, dword [0x45d7c0]
mov dword [eax], edx
call fcn.0042a850
test eax, eax
mov dword [0x45f720], eax
je 0x40e8ff
mov ecx, dword [0x45d39c]
push 0x45063c
mov dword [ecx + 8], eax
mov eax, dword [0x45f720]
mov edx, dword [0x45d39c]
push eax
mov dword [0x45d3a0], eax
mov dword [0x45d7c0], edx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
jmp 0x40b46f
mov dword [0x45d7c0], eax
mov eax, dword [eax + 8]
mov dword [0x45d3a0], eax
jmp 0x40b46f
call fcn.0042a800
test eax, eax
mov dword [0x45d39c], eax
je 0x40e8ff
mov ecx, dword [0x45d3a0]
mov edx, dword [0x45d7c0]
mov dword [0x45f720], ecx
push 0x45d240
mov eax, dword [edx + 8]
push 0x45d140
mov dword [0x45d3a0], eax
call fcn.0040ab80
mov eax, dword [0x45d144]
mov edx, dword [0x45d140]
mov ecx, dword [0x45f720]
mov dword [0x45d124], eax
mov eax, dword [0x45d14c]
mov dword [0x45d120], edx
mov edx, dword [0x45d148]
mov dword [0x45d12c], eax
mov eax, dword [0x45d154]
mov dword [0x45d128], edx
mov edx, dword [0x45d150]
mov dword [0x45d134], eax
mov eax, dword [0x45d7c0]
mov dword [0x45d3a0], ecx
mov dword [0x45d130], edx
add esp, 8
cmp dword [eax + 8], ecx
je 0x40b7b2
push 0x45d240
push 0x45d140
call fcn.0040ab80
mov eax, dword [0x45d7c0]
add esp, 8
mov ecx, dword [0x45d3a0]
mov edx, dword [eax + 8]
cmp edx, ecx
jne 0x40b833
mov ecx, dword [eax]
test ecx, ecx
je 0x40b7fa
mov edx, dword [0x45d39c]
mov dword [ecx + 4], edx
mov eax, dword [0x45d7c0]
mov edx, dword [0x45d39c]
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [0x45d39c]
mov ecx, dword [0x45d7c0]
mov dword [eax + 4], ecx
mov edx, dword [0x45d7c0]
mov eax, dword [0x45d39c]
mov dword [edx], eax
jmp 0x40b81c
mov ecx, dword [0x45d39c]
mov dword [ecx + 4], eax
mov eax, dword [0x45d7c0]
mov edx, dword [0x45d39c]
mov dword [eax], edx
mov ecx, dword [0x45d39c]
mov dword [0x45f724], ecx
call fcn.0042a850
test eax, eax
mov dword [0x45f720], eax
je 0x40e8ff
jmp 0x40b8dd
mov ecx, dword [eax + 4]
mov edx, dword [0x45d39c]
test ecx, ecx
jne 0x40b852
mov dword [eax + 4], edx
mov ecx, dword [0x45d39c]
mov eax, dword [0x45d7c0]
mov dword [ecx], eax
jmp 0x40b880
mov dword [edx + 4], ecx
mov eax, dword [0x45d7c0]
mov edx, dword [0x45d39c]
mov ecx, dword [eax + 4]
mov dword [ecx], edx
mov eax, dword [0x45d7c0]
mov ecx, dword [0x45d39c]
mov dword [eax + 4], ecx
mov eax, dword [0x45d39c]
mov edx, dword [0x45d7c0]
mov dword [eax], edx
call fcn.0042a850
test eax, eax
mov dword [0x45f720], eax
je 0x40e8ff
push 0x45063c
push eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov ecx, dword [0x45d3a0]
mov eax, dword [0x45f720]
mov edx, dword [ecx]
mov dword [edx + 4], eax
mov ecx, dword [0x45d3a0]
mov eax, dword [0x45f720]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [0x45d3a0]
mov dword [ecx], 0
mov eax, dword [0x45d3a0]
mov dword [0x45f720], eax
mov edx, dword [0x45d39c]
mov dword [edx + 8], eax
mov ecx, dword [0x45d7c0]
mov eax, dword [0x45d39c]
cmp dword [ecx + 4], eax
jne 0x40b8fd
mov dword [0x45d7c0], eax
jmp 0x40b921
cmp dword [eax + 4], ecx
jne 0x40e8ff
mov eax, dword [0x45f720]
push 0x45063c
push eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov ecx, dword [0x45d7c0]
mov eax, dword [0x45d120]
push 0xa
mov edx, dword [ecx + 8]
mov ecx, dword [0x45d124]
mov dword [0x45d3a0], edx
mov edx, dword [0x45d128]
mov dword [0x45d140], eax
mov eax, dword [0x45d12c]
mov dword [0x45d144], ecx
mov ecx, dword [0x45d130]
mov dword [0x45d148], edx
mov edx, dword [0x45d134]
mov dword [0x45d14c], eax
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0041ee80
mov eax, dword [0x45d7c0]
add esp, 4
xor edi, edi
mov dword [0x45d39c], eax
test eax, eax
je 0x40ba0d
lea esi, [esp + 0x188]
mov eax, dword [0x45d140]
mov ecx, dword [0x45d144]
mov edx, dword [0x45d148]
mov dword [esi - 8], eax
mov eax, dword [0x45d14c]
mov dword [esi - 4], ecx
mov ecx, dword [0x45d150]
mov dword [esi], edx
mov edx, dword [0x45d154]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
push 0xa
inc edi
add esi, 0x18
call fcn.0041ee80
add esp, 4
cmp edi, 0x63
jg 0x40b9ee
mov eax, dword [0x45d39c]
mov eax, dword [eax + 4]
test eax, eax
mov dword [0x45d39c], eax
jne 0x40b995
jmp 0x40ba08
push str._nERROR:_Overflow_line_buffer__
call fcn.0043caa0
add esp, 4
push str._nRefresh_partial_lines...
call fcn.0043caa0
add esp, 4
mov eax, dword [0x45d7c0]
mov dword [0x45d39c], eax
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x40ba27
mov eax, ecx
mov dword [0x45d39c], eax
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x40ba19
test edi, edi
jle 0x40b46f
lea ecx, [edi + edi*2]
lea esi, [esp + ecx*8 + 0x188]
mov edx, dword [esi - 0x20]
mov ecx, dword [esi - 0x1c]
mov eax, dword [eax + 8]
mov dword [0x45d140], edx
mov edx, dword [esi - 0x18]
mov dword [0x45d144], ecx
mov ecx, dword [esi - 0x14]
mov dword [0x45d148], edx
mov edx, dword [esi - 0x10]
mov dword [0x45d14c], ecx
mov ecx, dword [esi - 0xc]
push eax
mov dword [0x45f720], eax
mov dword [0x45d150], edx
mov dword [0x45d154], ecx
call fcn.0042ab40
mov edx, dword [0x45d39c]
add esp, 4
mov eax, dword [edx]
test eax, eax
mov dword [0x45d39c], eax
je 0x40b46f
dec edi
sub esi, 0x18
test edi, edi
jg 0x40ba39
jmp 0x40b46f
cmp dx, 0x4700
jne 0x40bb11
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40baf3
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40baea
push edi
push edi
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
mov dword [0x45d3a0], ecx
call fcn.0042acd0
mov edx, dword [0x45d7c0]
mov dword [0x45b8e4], edi
mov eax, dword [edx + 8]
mov dword [0x45d3a0], eax
jmp 0x40b46f
cmp dx, 0x4f00
jne 0x40bb87
mov ecx, dword [0x45d3a0]
push ecx
call fcn.0040eed0
add esp, 4
call fcn.0042acd0
test byte [0x45b8e4], 1
je 0x40bb60
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40bb57
push edi
push edi
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov edx, dword [eax + 4]
mov dword [0x45d3a0], edx
mov eax, dword [0x45d3a0]
mov dword [0x45b8e4], edi
mov eax, dword [eax + 4]
cmp eax, edi
je 0x40b46f
mov dword [0x45d3a0], eax
mov eax, dword [eax + 4]
cmp eax, edi
jne 0x40bb76
jmp 0x40b46f
cmp dx, 0x1519
jne 0x40bde3
mov ecx, dword [0x45d3a0]
push ecx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
call fcn.0042acd0
mov eax, dword [0x45d3a0]
mov dword [0x45b8e4], edi
cmp dword [eax + 8], edi
jne 0x40bbd9
push 0x45063c
push eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov eax, dword [eax + 8]
push 1
push eax
call fcn.0040f0b0
mov edx, dword [0x45d7c0]
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [edx + 8]
push 0x45d240
push 0x45d140
mov dword [0x45d3a0], eax
call fcn.0040ab80
mov eax, dword [0x45d3a0]
add esp, 8
cmp eax, edi
mov dword [0x45f720], eax
je 0x40bc75
mov esi, dword [eax + 8]
cmp esi, edi
je 0x40bc49
push 0xffffffffffffffff
push esi
call fcn.0040f0b0
add esp, 8
mov dword [esp + 0x10], eax
add eax, 6
push eax
call fcn.0043a750
add esp, 4
push esi
call fcn.004418c0
mov eax, dword [0x45f720]
add esp, 4
mov ecx, dword [eax + 4]
cmp ecx, edi
je 0x40bc6c
mov dword [0x45f720], ecx
mov ecx, dword [ecx]
push ecx
call fcn.0042a830
mov eax, dword [0x45f720]
add esp, 4
cmp eax, edi
jne 0x40bc19
jmp 0x40bc75
push eax
call fcn.0042a830
add esp, 4
mov eax, dword [0x45d7c0]
cmp dword [eax + 4], edi
jne 0x40bcb2
call fcn.0042a850
mov edx, dword [0x45d7c0]
mov dword [0x45d3a0], eax
push 0x45063c
mov dword [edx + 8], eax
mov eax, dword [0x45d3a0]
push eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
jmp 0x40b46f
mov ecx, dword [eax]
mov dword [0x45d39c], eax
cmp ecx, edi
jne 0x40bcd5
mov eax, dword [eax + 4]
mov dword [0x45d7c0], eax
mov dword [0x45f724], eax
mov dword [eax], edi
mov ecx, dword [0x45d39c]
push ecx
jmp 0x40bcfe
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, dword [0x45d7c0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov eax, dword [0x45d7c0]
mov edx, dword [0x45d39c]
mov ecx, dword [eax + 4]
push edx
mov dword [0x45d7c0], ecx
call fcn.0042a830
mov eax, dword [0x45d7c0]
add esp, 4
cmp eax, edi
mov ecx, dword [eax + 8]
mov dword [0x45d39c], eax
mov dword [0x45d3a0], ecx
je 0x40b46f
mov edx, dword [0x45d140]
mov ecx, dword [0x45d144]
mov eax, dword [eax + 8]
mov dword [0x45d120], edx
mov edx, dword [0x45d148]
mov dword [0x45d124], ecx
mov ecx, dword [0x45d14c]
mov dword [0x45d128], edx
mov edx, dword [0x45d150]
mov dword [0x45d12c], ecx
mov ecx, dword [0x45d154]
push eax
mov dword [0x45f720], eax
mov dword [0x45d130], edx
mov dword [0x45d134], ecx
call fcn.0042ab40
mov edx, dword [0x45d120]
mov eax, dword [0x45d124]
mov ecx, dword [0x45d128]
add esp, 4
mov dword [0x45d140], edx
mov edx, dword [0x45d12c]
mov dword [0x45d144], eax
mov eax, dword [0x45d130]
mov dword [0x45d148], ecx
mov ecx, dword [0x45d134]
push 0xa
mov dword [0x45d14c], edx
mov dword [0x45d150], eax
mov dword [0x45d154], ecx
call fcn.0041ee80
mov edx, dword [0x45d39c]
add esp, 4
mov eax, dword [edx + 4]
cmp eax, edi
mov dword [0x45d39c], eax
jne 0x40bd21
jmp 0x40b46f
cmp dx, 0x1e01
je 0x40bdfc
cmp dx, 0x8d00
je 0x40bdfc
cmp dx, 0x9100
jne 0x40c2c4
mov eax, dword [0x45cffc]
cmp eax, 1
je 0x40c2c4
cmp eax, 2
je 0x40c2c4
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
call fcn.0042acd0
test byte [0x45b8e4], 1
je 0x40be62
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40be59
push edi
push edi
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
mov dword [0x45d3a0], ecx
mov edx, dword [ebp + 8]
mov dword [0x45b8e4], edi
push edx
call fcn.0040ae30
add esp, 4
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d140]
mov ecx, dword [0x45d144]
mov edx, dword [0x45d148]
mov dword [esp + 0x58], eax
mov eax, dword [0x45d14c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x45d150]
mov dword [esp + 0x60], edx
mov edx, dword [0x45d154]
push edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edx
call fcn.00430340
mov eax, dword [esp + 0x10]
add esp, 4
and eax, 0xffff
cmp eax, 0x8d00
je 0x40bf6c
mov cl, byte [0x45f758]
cmp eax, 0x9100
jne 0x40bf9c
test cl, cl
jne 0x40bf4c
mov ecx, dword [0x456bbc]
mov eax, dword [0x456bb8]
mov edx, dword [0x45d120]
mov dword [esp + 0x44], ecx
mov ecx, dword [0x45d128]
mov dword [esp + 0x40], eax
mov eax, dword [0x45d124]
mov dword [0x45d148], ecx
mov ecx, dword [0x45d134]
mov dword [0x45d140], edx
mov edx, dword [0x45d12c]
mov dword [0x45d144], eax
mov eax, dword [0x45d130]
mov dword [0x45d154], ecx
mov cl, 1
mov dword [0x45d14c], edx
mov dword [0x45d150], eax
mov byte [0x45f758], cl
jmp 0x40c082
cmp cl, 2
jne 0x40bf9c
mov edx, dword [0x45d120]
mov eax, dword [0x45d124]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], eax
jmp 0x40bf9c
mov cl, byte [0x45f758]
cmp cl, 1
jne 0x40bf7b
mov cl, 2
jmp 0x40bf96
cmp cl, 2
jne 0x40bf9c
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [0x456bb8], ecx
mov dword [0x456bbc], edx
xor cl, cl
mov byte [0x45f758], cl
movsx eax, cl
sub eax, edi
je 0x40c0d1
dec eax
je 0x40c03c
dec eax
jne 0x40c13b
fld qword [esp + 0xdc]
fcomp qword [0x44d060]
fnstsw ax
test ah, 0x40
jne 0x40bfe2
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
mov dword [0x45d120], eax
mov dword [0x45d124], edx
mov eax, dword [0x45d120]
mov edx, dword [0x45d124]
mov dword [0x45d140], eax
mov eax, dword [0x45d128]
mov dword [0x45d144], edx
mov edx, dword [0x45d12c]
mov dword [0x45d148], eax
mov eax, dword [0x45d130]
mov dword [0x45d14c], edx
mov edx, dword [0x45d134]
mov dword [0x45d150], eax
mov eax, dword [esp + 0x40]
mov dword [0x45d154], edx
mov edx, dword [esp + 0x44]
mov dword [0x456bb8], eax
mov dword [0x456bbc], edx
jmp 0x40c13b
lea eax, [esp + 0x58]
push 0x45d120
push eax
call fcn.00440390
fld qword [esp + 0x48]
fmul qword [str.UUUUUU]
add esp, 8
lea ecx, [esp + 0x58]
push 0x45d140
sub esp, 8
fstp qword [esp]
sub esp, 8
fsub qword [0x44d070]
fstp qword [esp]
push ecx
call fcn.00440430
mov cl, byte [0x45f758]
add esp, 0x18
fld qword [esp + 0x40]
fmul qword [0x44d078]
cmp word [esp + 0xc], 0x9100
fstp qword [0x456bb8]
jne 0x40c0b6
mov dword [esp + 0xdc], 0xffffffff
mov dword [esp + 0xe0], 0x7fefffff
jmp 0x40c13b
mov edx, dword [0x45d120]
mov eax, dword [0x45d124]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], eax
jmp 0x40c13b
fld qword [0x456bb8]
lea ecx, [esp + 0x58]
push 0x45d120
fstp qword [esp + 0x44]
push ecx
call fcn.00440390
fld qword [esp + 0x48]
fmul qword [str.UUUUUU]
fxch st(1)
fst qword [esp + 0x20]
fsub qword [0x44d080]
fxch st(1)
add esp, 8
push 0x45d140
sub esp, 8
fstp qword [esp]
sub esp, 8
fstp qword [esp]
push 0x45d120
call fcn.00440430
fld qword [0x456bb8]
fmul qword [0x44d078]
mov cl, byte [0x45f758]
add esp, 0x18
fstp qword [0x456bb8]
movsx eax, cl
sub eax, edi
je 0x40c15a
dec eax
je 0x40c151
dec eax
jne 0x40c161
mov byte [0x45f758], 0
jmp 0x40c161
mov byte [0x45f758], 2
jmp 0x40c161
mov byte [0x45f758], 1
mov edx, dword [0x45d140]
mov eax, dword [0x45d144]
mov ecx, dword [0x45d148]
mov dword [0x45d0a0], edx
mov edx, dword [0x45d14c]
mov dword [0x45d0a4], eax
mov eax, dword [0x45d150]
mov dword [0x45d0a8], ecx
mov ecx, dword [0x45d154]
mov dword [0x45d0ac], edx
mov edx, dword [0x45d140]
mov dword [0x45d0b0], eax
mov eax, dword [0x45d144]
mov dword [0x45d0b4], ecx
mov ecx, dword [0x45d148]
mov dword [0x45d220], edx
mov edx, dword [0x45d14c]
mov dword [0x45d224], eax
mov eax, dword [0x45d150]
mov dword [0x45d228], ecx
mov ecx, dword [0x45d154]
mov dword [0x45d22c], edx
mov edx, dword [0x45d140]
mov dword [0x45d230], eax
mov eax, dword [0x45d144]
mov dword [0x45d234], ecx
mov ecx, dword [0x45d148]
mov dword [0x45d020], edx
mov edx, dword [0x45d14c]
mov dword [0x45d024], eax
mov eax, dword [0x45d150]
mov dword [0x45d028], ecx
mov ecx, dword [0x45d154]
mov dword [0x45d02c], edx
mov edx, dword [0x45d140]
mov dword [0x45d030], eax
mov eax, dword [0x45d144]
mov dword [0x45d034], ecx
mov ecx, dword [0x45d148]
mov dword [0x45d060], edx
mov edx, dword [0x45d14c]
mov dword [0x45d064], eax
mov eax, dword [0x45d150]
mov dword [0x45d068], ecx
mov ecx, dword [0x45d154]
mov dword [0x45d06c], edx
mov dword [0x45d070], eax
mov dword [0x45d074], ecx
call fcn.0042a800
mov dword [0x45d7c0], eax
mov dword [0x45f724], eax
call fcn.0042a850
mov ecx, dword [0x45d7c0]
mov dword [0x45d3a0], eax
cmp ecx, edi
je 0x40e8a3
cmp eax, edi
je 0x40e8a3
mov dword [ecx + 8], eax
mov edx, dword [0x45d3a0]
push 0x45063c
push edx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
jmp 0x40b46f
cmp dx, 0x5200
jne 0x40c333
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40c315
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40c30c
push edi
push edi
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
mov dword [0x45d3a0], ecx
mov dword [0x45b8e4], edi
call fcn.0042acd0
mov dl, byte [0x45bd3c]
not dl
mov byte [0x45bd3c], dl
jmp 0x40b46a
cmp dx, 0x5300
jne 0x40c873
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
je 0x40c379
cmp dword [eax + 8], edi
jne 0x40c379
push 0x45063c
push eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
push 0x45d240
push 0x45d140
call fcn.0040ab80
mov eax, dword [0x45d3a0]
mov edx, dword [0x45d7c0]
add esp, 8
mov ecx, dword [eax + 4]
cmp ecx, edi
je 0x40c4b0
cmp dword [edx + 8], eax
jne 0x40c3b6
mov dword [edx + 8], ecx
mov ecx, dword [0x45d3a0]
mov edx, dword [ecx + 4]
mov dword [edx], edi
jmp 0x40c3c7
mov eax, dword [eax]
mov dword [eax + 4], ecx
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ecx], edx
mov eax, dword [0x45d3a0]
mov dword [0x45f720], eax
mov eax, dword [eax + 4]
mov dword [0x45d3a0], eax
cmp dword [eax + 8], edi
jne 0x40c3f4
push 0x45063c
push eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov eax, dword [0x45f720]
mov esi, dword [eax + 8]
cmp esi, edi
je 0x40c48e
push 0xffffffffffffffff
push esi
call fcn.0040f0b0
mov ecx, dword [eax + 6]
add esp, 8
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0xa]
push 0xa
push esi
mov dword [esp + 0x38], edx
call fcn.0040f0b0
mov ecx, dword [eax + 6]
mov edx, dword [eax + 0xa]
mov dword [0x45d140], ecx
mov dword [0x45d144], edx
mov ecx, dword [eax + 0xe]
mov edx, dword [eax + 0x12]
add esp, 8
mov dword [0x45d148], ecx
mov dword [0x45d14c], edx
mov ecx, dword [eax + 0x16]
mov edx, dword [eax + 0x1a]
push 0x45d140
mov dword [esp + 0x14], eax
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0042a790
add esp, 4
lea eax, [esp + 0x2c]
push eax
call fcn.0043a750
mov ecx, dword [0x45f720]
add esp, 4
mov edx, dword [ecx + 8]
push edx
call fcn.004418c0
add esp, 4
mov eax, dword [0x45f720]
push eax
call fcn.0042a830
mov ecx, dword [0x45d3a0]
add esp, 4
push ecx
call fcn.0042ab40
add esp, 4
jmp 0x40b46f
mov ecx, dword [edx + 4]
cmp ecx, edi
je 0x40c7ff
cmp eax, dword [edx + 8]
jne 0x40c635
mov ecx, dword [eax + 8]
cmp ecx, edi
je 0x40c50c
push 0xffffffffffffffff
push ecx
call fcn.0040f0b0
mov edx, dword [eax + 6]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0xa]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x34], eax
call fcn.0043a750
mov edx, dword [0x45d3a0]
add esp, 4
mov eax, dword [edx + 8]
push eax
call fcn.004418c0
mov eax, dword [0x45d3a0]
add esp, 4
push eax
call fcn.0042a830
mov ecx, dword [0x45d7c0]
add esp, 4
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp eax, edi
jne 0x40c52e
mov dword [0x45f724], ecx
mov dword [ecx], edi
jmp 0x40c53d
mov dword [eax + 4], ecx
mov eax, dword [0x45d7c0]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [edx], eax
mov eax, dword [0x45d7c0]
mov dword [0x45d39c], eax
push eax
mov ecx, dword [eax + 4]
mov dword [0x45d7c0], ecx
call fcn.0042a830
mov eax, dword [0x45d7c0]
add esp, 4
cmp eax, edi
mov edx, dword [eax + 8]
mov dword [0x45d39c], eax
mov dword [0x45d3a0], edx
je 0x40c6fb
mov ecx, dword [0x45d140]
mov edx, dword [0x45d144]
mov eax, dword [eax + 8]
mov dword [0x45d120], ecx
mov ecx, dword [0x45d148]
mov dword [0x45d124], edx
mov edx, dword [0x45d14c]
mov dword [0x45d128], ecx
mov ecx, dword [0x45d150]
mov dword [0x45d12c], edx
mov edx, dword [0x45d154]
push eax
mov dword [0x45f720], eax
mov dword [0x45d130], ecx
mov dword [0x45d134], edx
call fcn.0042ab40
mov eax, dword [0x45d120]
mov ecx, dword [0x45d124]
mov edx, dword [0x45d128]
add esp, 4
mov dword [0x45d140], eax
mov eax, dword [0x45d12c]
mov dword [0x45d144], ecx
mov ecx, dword [0x45d130]
mov dword [0x45d148], edx
mov edx, dword [0x45d134]
push 0xa
mov dword [0x45d14c], eax
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0041ee80
mov eax, dword [0x45d39c]
add esp, 4
mov eax, dword [eax + 4]
cmp eax, edi
mov dword [0x45d39c], eax
jne 0x40c574
jmp 0x40c6f6
mov edx, dword [eax]
mov eax, dword [ecx + 8]
mov dword [edx + 4], eax
mov ecx, dword [0x45d7c0]
mov edx, dword [ecx + 4]
mov ecx, dword [0x45d3a0]
mov eax, dword [edx + 8]
mov edx, dword [ecx]
mov dword [eax], edx
mov eax, dword [0x45d3a0]
mov ecx, dword [0x45d7c0]
mov dword [0x45f720], eax
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 8]
mov dword [0x45d3a0], ecx
mov ecx, dword [eax + 8]
cmp ecx, edi
je 0x40c6b7
push 0xffffffffffffffff
push ecx
call fcn.0040f0b0
mov edx, dword [eax + 6]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0xa]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x34], eax
call fcn.0043a750
mov edx, dword [0x45f720]
add esp, 4
mov eax, dword [edx + 8]
push eax
call fcn.004418c0
mov eax, dword [0x45f720]
add esp, 4
push eax
call fcn.0042a830
mov eax, dword [0x45d7c0]
add esp, 4
mov ecx, dword [eax + 4]
mov dword [0x45d39c], ecx
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
cmp ecx, edi
je 0x40c6df
mov dword [ecx], eax
mov eax, dword [0x45d7c0]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov eax, dword [0x45d39c]
push eax
call fcn.0042a830
add esp, 4
mov eax, dword [0x45d7c0]
mov ecx, dword [0x45d3a0]
push 0x45d240
mov dword [0x45f720], ecx
mov edx, dword [eax + 8]
push 0x45d140
mov dword [0x45d3a0], edx
call fcn.0040ab80
mov eax, dword [0x45f720]
add esp, 8
mov dword [0x45d3a0], eax
mov eax, dword [0x45d7c0]
cmp eax, edi
mov dword [0x45d39c], eax
je 0x40b46f
mov ecx, dword [0x45d140]
mov edx, dword [0x45d144]
mov eax, dword [eax + 8]
mov dword [0x45d120], ecx
mov ecx, dword [0x45d148]
mov dword [0x45d124], edx
mov edx, dword [0x45d14c]
mov dword [0x45d128], ecx
mov ecx, dword [0x45d150]
mov dword [0x45d12c], edx
mov edx, dword [0x45d154]
push eax
mov dword [0x45f720], eax
mov dword [0x45d130], ecx
mov dword [0x45d134], edx
call fcn.0042ab40
mov eax, dword [0x45d120]
mov ecx, dword [0x45d124]
mov edx, dword [0x45d128]
add esp, 4
mov dword [0x45d140], eax
mov eax, dword [0x45d12c]
mov dword [0x45d144], ecx
mov ecx, dword [0x45d130]
mov dword [0x45d148], edx
mov edx, dword [0x45d134]
push 0xa
mov dword [0x45d14c], eax
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0041ee80
mov eax, dword [0x45d39c]
add esp, 4
mov eax, dword [eax + 4]
cmp eax, edi
mov dword [0x45d39c], eax
jne 0x40c73e
jmp 0x40b46f
mov ebx, dword [eax + 8]
cmp ebx, edi
je 0x40c858
push 1
push ebx
call fcn.0040f0b0
mov esi, eax
add esp, 8
mov dword [esp + 0x10], esi
mov eax, dword [esi + 6]
push eax
mov dword [0x45d7c4], eax
call fcn.004434f0
add esp, 4
push 2
call fcn.004433d0
mov cx, word [0x45063c]
add esp, 4
mov dword [0x45d7c4], eax
mov word [eax], cx
mov edx, dword [0x45d7c4]
push ebx
mov dword [esi + 6], edx
call fcn.0043afa0
add esp, 4
jmp 0x40b46f
push 0x45063c
push eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
jmp 0x40b46f
cmp dx, 0x8500
jne 0x40c8ed
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
mov cl, byte [0x45bd40]
not cl
mov byte [0x45bd40], cl
call fcn.0042acd0
mov al, byte [0x45b8e4]
mov byte [0x45bd48], 0
test al, 1
mov byte [0x45bd4c], 0
je 0x40c8e2
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40c8d9
push 1
push 0x45063c
push eax
call fcn.0042a890
mov eax, dword [0x45d3a0]
add esp, 0xc
mov edx, dword [eax + 4]
mov dword [0x45d3a0], edx
mov dword [0x45b8e4], edi
jmp 0x40b46a
cmp dx, 0x3e00
jne 0x40c9e5
lea eax, [esp + 0xc]
push eax
call fcn.0041d730
add esp, 4
test eax, eax
mov eax, dword [esp + 0xc]
je 0x40c9ca
cmp ax, 1
je 0x40c921
cmp ax, 2
jne 0x40c9ca
mov ecx, dword [0x45d3a0]
push ecx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40c96c
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40c963
push edi
push edi
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov edx, dword [eax + 4]
mov dword [0x45d3a0], edx
call fcn.0042acd0
cmp word [esp + 0xc], 1
mov dword [0x45b8e4], edi
mov byte [0x45bd48], 1
mov byte [0x45bd40], 0
mov eax, str.Hirakana
je 0x40c997
mov eax, str.Katakana
push eax
push str._nCurrent_mode_is__s
call fcn.0043caa0
add esp, 8
push str._nInput_Ready...
call fcn.0043caa0
mov eax, dword [esp + 0x10]
add esp, 4
mov byte [0x457044], al
mov byte [esp + 0x17], 0
mov byte [esp + 0x54], 0
jmp 0x40b46f
mov byte [0x45bd48], 0
mov byte [0x457044], al
mov byte [esp + 0x17], 0
mov byte [esp + 0x54], 0
jmp 0x40b46f
cmp dx, 0x1f13
je 0x40e827
cmp dx, 0x4000
je 0x40e827
cmp dx, 0x8600
jne 0x40cc9f
call fcn.0042acd0
mov eax, dword [0x45d3a0]
mov dword [0x45b8e4], edi
mov esi, dword [eax + 8]
cmp esi, edi
je 0x40ca4b
push 1
push esi
call fcn.0040f0b0
mov edx, dword [eax + 6]
mov dword [esp + 0x18], eax
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
add esp, 8
mov dword [0x45d7c4], edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
sbb eax, eax
and eax, 0x63
jmp 0x40ca56
mov edx, dword [0x45d7c4]
mov eax, 0x63
xor edi, edi
cmp eax, 0x63
mov dword [esp + 0xc], edi
je 0x40b46f
mov cl, byte [eax + edx]
mov dl, byte [eax + edx + 1]
cmp cl, 0xb0
mov byte [esp + 0xd4], cl
mov byte [esp + 0xd8], dl
mov dword [esp + 0x18], eax
jb 0x40cafb
cmp cl, 0xc8
ja 0x40cafb
xor ebx, ebx
xor eax, eax
mov bh, cl
mov ecx, dword [esp + 0xd4]
mov bl, dl
and ecx, 0xff
xor edx, edx
mov dx, word [ecx*2 + 0x4511b2]
mov ax, word [ecx*2 + 0x4511b0]
mov ecx, edx
dec eax
dec ecx
cmp eax, ecx
jge 0x40cad6
lea edx, [eax*2 + 0x451348]
cmp word [edx], bx
je 0x40cacd
inc eax
add edx, 2
cmp eax, ecx
jl 0x40cabe
jmp 0x40cad6
mov edi, 1
mov dword [esp + 0xc], edi
test di, di
je 0x40b46f
mov cx, word [eax*2 + 0x450f58]
mov dx, word [eax*2 + 0x450f5a]
mov word [esp + 0x3c], cx
mov word [esp + 0x38], dx
jmp 0x40cb74
cmp cl, 0xa4
jne 0x40cb74
mov eax, dword [esp + 0xd8]
and eax, 0xff
sub eax, 0xa8
je 0x40cb5b
sub eax, 0xb
je 0x40cb40
sub eax, 6
je 0x40cb25
xor edi, edi
mov dword [esp + 0xc], edi
jmp 0x40cb74
mov edi, 1
mov dword [esp + 0x3c], 0xc9a1
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], 0xc9fe
jmp 0x40cb74
mov edi, 1
mov dword [esp + 0x3c], 0xaba1
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], 0xabf3
jmp 0x40cb74
mov edi, 1
mov dword [esp + 0x3c], 0xaaa1
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], 0xaaf2
test di, di
je 0x40b46f
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
call fcn.0041dba0
mov edx, dword [0x45d3a0]
add esp, 8
mov ebx, eax
push edx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test bx, bx
je 0x40b46f
mov edx, dword [0x45d7c4]
mov ecx, dword [esp + 0x18]
xor eax, eax
push esi
mov al, bh
mov byte [ecx + edx], al
mov eax, dword [0x45d7c4]
mov byte [ecx + eax + 1], bl
call fcn.0043afa0
add esp, 4
call fcn.0042acd0
push 0xa
push esi
mov dword [0x45b8e4], 0
call fcn.0040f0b0
mov ecx, dword [eax + 6]
mov edx, dword [eax + 0xa]
mov dword [0x45d140], ecx
mov dword [0x45d144], edx
mov ecx, dword [eax + 0xe]
mov edx, dword [eax + 0x12]
add esp, 8
mov dword [0x45d148], ecx
mov dword [0x45d14c], edx
mov ecx, dword [eax + 0x16]
mov edx, dword [eax + 0x1a]
push 0x45d140
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0042a790
add esp, 4
push 1
push esi
call fcn.0040f0b0
mov dword [esp + 0x18], eax
mov eax, dword [eax + 6]
mov dword [0x45d7c4], eax
add esp, 8
mov cl, byte [eax + 1]
test cl, cl
jne 0x40cc5c
mov al, byte [eax]
push eax
call fcn.0041ee80
add esp, 4
jmp 0x40cc68
push ecx
mov cl, byte [eax]
push ecx
call fcn.0041f070
add esp, 8
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x40cc91
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov edx, dword [eax + 4]
mov dword [0x45d3a0], edx
jmp 0x40b46f
cmp dx, 0xfffa
jne 0x40cd1a
call fcn.0042acd0
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40ccfa
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40ccf1
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
mov dword [0x45d3a0], ecx
mov edx, dword [0x45d3a0]
mov dword [0x45b8e4], edi
mov eax, dword [edx]
cmp eax, edi
je 0x40b46f
mov dword [0x45d3a0], eax
jmp 0x40b46f
cmp dx, 0xfff9
jne 0x40cd96
call fcn.0042acd0
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40cd75
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40cd6c
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
mov dword [0x45d3a0], ecx
mov edx, dword [0x45d3a0]
mov dword [0x45b8e4], edi
mov eax, dword [edx + 4]
cmp eax, edi
je 0x40b46f
mov dword [0x45d3a0], eax
jmp 0x40b46f
cmp dx, 0xfffc
jne 0x40ce56
call fcn.0042acd0
mov eax, dword [0x45d3a0]
push eax
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40cdf7
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40cdec
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov edx, dword [eax + 4]
mov dword [0x45d3a0], edx
jmp 0x40cdfd
mov edx, dword [0x45d3a0]
mov esi, dword [0x45d7c0]
mov dword [0x45b8e4], edi
cmp dword [esi], edi
je 0x40b46f
mov eax, dword [esi + 8]
xor ecx, ecx
cmp eax, edx
mov dword [0x45f720], eax
je 0x40ce30
mov eax, dword [eax + 4]
cmp eax, edi
je 0x40ce30
inc ecx
cmp eax, edx
mov dword [0x45f720], eax
jne 0x40ce1f
mov eax, dword [esi]
mov dword [0x45d7c0], eax
mov eax, dword [eax + 8]
cmp ecx, 1
mov dword [0x45d3a0], eax
jl 0x40b46f
mov eax, dword [eax + 4]
cmp eax, edi
je 0x40b46f
dec ecx
jmp 0x40ce3a
cmp dx, 0xfffb
jne 0x40cf19
call fcn.0042acd0
mov ecx, dword [0x45d3a0]
push ecx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40ceb8
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40cead
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov edx, dword [eax + 4]
mov dword [0x45d3a0], edx
jmp 0x40cebe
mov edx, dword [0x45d3a0]
mov esi, dword [0x45d7c0]
mov dword [0x45b8e4], edi
cmp dword [esi + 4], edi
je 0x40b46f
mov eax, dword [esi + 8]
xor ecx, ecx
cmp eax, edx
mov dword [0x45f720], eax
je 0x40cef2
mov eax, dword [eax + 4]
cmp eax, edi
je 0x40cef2
inc ecx
cmp eax, edx
mov dword [0x45f720], eax
jne 0x40cee1
mov eax, dword [esi + 4]
mov dword [0x45d7c0], eax
mov eax, dword [eax + 8]
cmp ecx, 1
mov dword [0x45d3a0], eax
jl 0x40b46f
mov eax, dword [eax + 4]
cmp eax, edi
je 0x40b46f
dec ecx
jmp 0x40cefd
cmp dx, 0xe08
jne 0x40d406
mov edx, dword [0x45d3a0]
push edx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
call fcn.0042acd0
test byte [0x45b8e4], 1
je 0x40cf78
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40cf70
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov eax, dword [eax + 4]
mov dword [0x45d3a0], eax
mov ecx, dword [0x45d3a0]
mov dword [0x45b8e4], edi
mov eax, dword [ecx]
cmp eax, edi
je 0x40d087
mov dword [0x45f720], eax
mov esi, dword [eax + 8]
cmp esi, edi
je 0x40d016
push 0xa
push esi
call fcn.0040f0b0
mov edx, dword [eax + 6]
mov ecx, dword [eax + 0xa]
mov dword [0x45d140], edx
mov dword [0x45d144], ecx
mov edx, dword [eax + 0xe]
mov ecx, dword [eax + 0x12]
add esp, 8
mov dword [0x45d148], edx
mov dword [0x45d14c], ecx
mov edx, dword [eax + 0x16]
mov eax, dword [eax + 0x1a]
push 0x45d140
mov dword [0x45d150], edx
mov dword [0x45d154], eax
call fcn.0042a790
add esp, 4
push 0xffffffffffffffff
push esi
call fcn.0040f0b0
add esp, 8
mov dword [esp + 0x10], eax
add eax, 6
push eax
call fcn.0043a750
add esp, 4
push esi
call fcn.004418c0
mov ecx, dword [0x45f720]
add esp, 4
mov dword [ecx + 8], edi
jmp 0x40d028
push 0x45d240
push 0x45d140
call fcn.0040ab80
add esp, 8
mov edx, dword [0x45f720]
mov eax, dword [edx]
cmp eax, edi
je 0x40d04f
mov ecx, dword [0x45d3a0]
mov dword [eax + 4], ecx
mov edx, dword [0x45f720]
mov ecx, dword [0x45d3a0]
mov eax, dword [edx]
mov dword [ecx], eax
jmp 0x40d065
mov edx, dword [0x45d3a0]
mov dword [edx], edi
mov ecx, dword [0x45d7c0]
mov eax, dword [0x45d3a0]
mov dword [ecx + 8], eax
mov edx, dword [0x45f720]
push edx
call fcn.0042a830
mov eax, dword [0x45d3a0]
add esp, 4
push eax
call fcn.0042ab40
add esp, 4
jmp 0x40b46f
mov ecx, dword [0x45d7c0]
mov edx, dword [ecx]
cmp edx, edi
je 0x40b46f
mov dword [0x45d7c0], edx
mov eax, dword [edx + 8]
mov dword [0x45d3a0], eax
mov ecx, dword [eax + 4]
cmp ecx, edi
je 0x40d0ba
mov eax, ecx
mov dword [0x45d3a0], eax
mov ecx, dword [eax + 4]
cmp ecx, edi
jne 0x40d0ac
mov esi, dword [eax + 8]
cmp esi, edi
je 0x40d1c6
push 1
push esi
call fcn.0040f0b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x40d11f
mov edx, dword [eax + 6]
test edx, edx
je 0x40d11f
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jne 0x40d12b
cmp byte [edx], 0x20
jne 0x40d12b
push 0xffffffffffffffff
push esi
call fcn.0040f0b0
add esp, 8
mov dword [esp + 0x10], eax
add eax, 6
push eax
call fcn.0043a750
mov edx, dword [0x45d3a0]
add esp, 4
mov dword [edx + 8], 0
jmp 0x40d12b
mov eax, dword [0x45d3a0]
mov dword [eax + 8], 0
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x40d1c0
push 0xa
push esi
call fcn.0040f0b0
mov ecx, dword [eax + 6]
mov edx, dword [eax + 0xa]
mov dword [0x45d140], ecx
mov dword [0x45d144], edx
mov ecx, dword [eax + 0xe]
mov edx, dword [eax + 0x12]
add esp, 8
mov dword [0x45d148], ecx
mov dword [0x45d14c], edx
mov ecx, dword [eax + 0x16]
mov edx, dword [eax + 0x1a]
push esi
mov dword [esp + 0x14], eax
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.004418c0
mov ecx, dword [0x45d7c0]
mov eax, dword [0x45d3a0]
add esp, 4
cmp dword [ecx + 8], eax
jne 0x40d1a5
mov dword [ecx + 8], 0
mov eax, dword [0x45d3a0]
mov dword [0x45f720], eax
mov ecx, dword [eax]
push eax
mov dword [0x45d3a0], ecx
call fcn.0042a830
mov eax, dword [0x45d3a0]
add esp, 4
mov edx, dword [0x45d7c0]
cmp dword [edx + 8], eax
jne 0x40d261
test eax, eax
je 0x40d1f1
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x40d289
test eax, eax
je 0x40d1f1
push eax
call fcn.0042a830
mov edx, dword [0x45d7c0]
add esp, 4
mov eax, dword [edx + 4]
push 0xa
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov edx, dword [0x45d7c0]
mov eax, dword [edx + 8]
mov dword [eax], 0
mov ecx, dword [0x45d7c0]
mov eax, dword [ecx + 8]
mov dword [0x45d3a0], eax
mov eax, dword [eax + 8]
push eax
call fcn.0040f0b0
mov edx, dword [0x45d140]
mov ecx, dword [0x45d144]
mov dword [eax + 6], edx
mov dword [eax + 0xa], ecx
mov edx, dword [0x45d148]
mov ecx, dword [0x45d14c]
mov dword [eax + 0xe], edx
mov dword [eax + 0x12], ecx
mov edx, dword [0x45d150]
mov ecx, dword [0x45d154]
mov dword [eax + 0x16], edx
add esp, 8
mov dword [esp + 0x10], eax
mov dword [eax + 0x1a], ecx
jmp 0x40d2a4
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x40d289
mov dword [0x45f720], eax
mov edx, dword [eax]
push eax
mov dword [0x45d3a0], edx
call fcn.0042a830
mov eax, dword [0x45d3a0]
mov edx, dword [0x45d7c0]
add esp, 4
mov ecx, dword [edx + 4]
mov edx, dword [ecx + 8]
mov dword [eax + 4], edx
mov eax, dword [0x45d7c0]
mov ecx, dword [eax + 4]
mov eax, dword [0x45d3a0]
mov edx, dword [ecx + 8]
mov dword [edx], eax
mov ecx, dword [0x45d7c0]
mov eax, dword [ecx + 4]
mov edx, dword [eax + 4]
test edx, edx
jne 0x40d2cc
push eax
call fcn.0042a830
mov ecx, dword [0x45d7c0]
add esp, 4
mov dword [ecx + 4], 0
jmp 0x40d2f5
mov dword [0x45d39c], eax
mov edx, dword [ecx + 4]
mov eax, dword [edx + 4]
mov dword [eax], ecx
mov eax, dword [0x45d7c0]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov eax, dword [0x45d39c]
push eax
call fcn.0042a830
add esp, 4
mov eax, dword [0x45d7c0]
test eax, eax
mov dword [0x45d39c], eax
je 0x40b46f
mov ecx, dword [0x45d3a0]
push 0x45d240
mov dword [0x45f720], ecx
mov edx, dword [eax + 8]
push 0x45d140
mov dword [0x45d3a0], edx
call fcn.0040ab80
mov eax, dword [0x45f720]
add esp, 8
mov dword [0x45d3a0], eax
mov eax, dword [0x45d39c]
test eax, eax
je 0x40b46f
mov ecx, dword [0x45d140]
mov edx, dword [0x45d144]
mov eax, dword [eax + 8]
mov dword [0x45d120], ecx
mov ecx, dword [0x45d148]
mov dword [0x45d124], edx
mov edx, dword [0x45d14c]
mov dword [0x45d128], ecx
mov ecx, dword [0x45d150]
mov dword [0x45d12c], edx
mov edx, dword [0x45d154]
push eax
mov dword [0x45f720], eax
mov dword [0x45d130], ecx
mov dword [0x45d134], edx
call fcn.0042ab40
mov eax, dword [0x45d120]
mov ecx, dword [0x45d124]
mov edx, dword [0x45d128]
add esp, 4
mov dword [0x45d140], eax
mov eax, dword [0x45d12c]
mov dword [0x45d144], ecx
mov ecx, dword [0x45d130]
mov dword [0x45d148], edx
mov edx, dword [0x45d134]
push 0xa
mov dword [0x45d14c], eax
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0041ee80
mov eax, dword [0x45d39c]
add esp, 4
mov eax, dword [eax + 4]
test eax, eax
mov dword [0x45d39c], eax
jne 0x40d345
jmp 0x40b46f
and edx, 0xff
mov esi, 0x20
cmp dx, si
mov dword [esp + 0xc], edx
jb 0x40b46f
cmp dx, 0x82
jae 0x40b46f
mov al, byte [0x45bd40]
test al, al
jne 0x40d451
mov cl, byte [0x45bd48]
test cl, cl
jne 0x40d45f
mov cl, byte [0x45bd4c]
test cl, cl
jne 0x40d451
cmp dx, di
jne 0x40d55e
xor edi, edi
mov cl, byte [0x45bd48]
test cl, cl
je 0x40d516
cmp dx, di
je 0x40d516
mov edi, str.3eE_4_56tTgGhHbBxXdDrRpPcCqQaAzZwWsSuUiI1_kKfFvV2__jJnN_mM78_9oOlL.__0_yY
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp dx, 0x3c
je 0x40d483
cmp dx, 0x3e
jne 0x40d499
mov al, byte [esp + 0x17]
test al, al
jne 0x40d499
mov byte [esp + 0x17], 1
mov byte [esp + 0x54], dl
jmp 0x40b46f
xor eax, eax
and ecx, 0xffff
jle 0x40d4b5
movzx di, byte [eax + str.3eE_4_56tTgGhHbBxXdDrRpPcCqQaAzZwWsSuUiI1_kKfFvV2__jJnN_mM78_9oOlL.__0_yY]
cmp di, dx
je 0x40d4b5
inc eax
cmp eax, ecx
jl 0x40d4a3
cmp eax, ecx
jne 0x40d4c3
mov byte [esp + 0x17], 0
jmp 0x40d55e
mov dl, byte [0x457044]
mov cl, byte [esp + 0x17]
mov al, byte [eax + 0x4551e8]
sub dl, 0x57
test cl, cl
je 0x40d509
mov ecx, dword [esp + 0x54]
and ecx, 0xff
sub ecx, 0x3c
je 0x40d502
sub ecx, 2
jne 0x40d504
inc al
mov byte [esp + 0x17], 0
mov byte [esp + 0x70], dl
mov byte [esp + 0x71], al
jmp 0x40db35
add al, 2
mov byte [esp + 0x17], 0
mov byte [esp + 0x70], dl
mov byte [esp + 0x71], al
jmp 0x40db35
mov cl, byte [0x45bd4c]
test cl, cl
je 0x40db4b
cmp dx, di
je 0x40db4b
mov edi, str._1234567890________QWERTYUIOP__qwertyuiopASDFGHJKL_asdfghjkl:_ZXCVBNM_._zxcvbnm___
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
and ecx, 0xffff
jle 0x40d556
movzx di, byte [eax + str._1234567890________QWERTYUIOP__qwertyuiopASDFGHJKL_asdfghjkl:_ZXCVBNM_._zxcvbnm___]
cmp di, dx
je 0x40d556
inc eax
cmp eax, ecx
jl 0x40d544
cmp eax, ecx
jne 0x40db26
mov ecx, dword [0x45d3a0]
push ecx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
mov dl, byte [esp + 0xc]
mov ecx, dword [0x45d3a0]
mov byte [esp + 0x70], dl
mov byte [esp + 0x71], 0
mov eax, dword [ecx + 8]
test eax, eax
jne 0x40d70c
mov eax, dword [ecx]
test eax, eax
je 0x40d64a
mov esi, dword [eax + 8]
test esi, esi
je 0x40e8ff
push 0xa
push esi
call fcn.0040f0b0
add esp, 8
test eax, eax
je 0x40e8ff
mov ecx, dword [eax + 6]
mov edx, dword [eax + 0xa]
mov dword [0x45d140], ecx
mov dword [0x45d144], edx
mov ecx, dword [eax + 0xe]
mov edx, dword [eax + 0x12]
mov dword [0x45d148], ecx
mov dword [0x45d14c], edx
mov ecx, dword [eax + 0x16]
mov edx, dword [eax + 0x1a]
push 0x45d140
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0042a790
add esp, 4
push 1
push esi
call fcn.0040f0b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x40e8ff
mov eax, dword [eax + 6]
test eax, eax
mov dword [0x45d7c4], eax
je 0x40d766
mov cl, byte [eax + 1]
test cl, cl
je 0x40d63d
mov al, byte [eax]
push ecx
push eax
call fcn.0041f070
add esp, 8
jmp 0x40d766
mov cl, byte [eax]
push ecx
call fcn.0041ee80
jmp 0x40d763
mov edx, dword [0x45d7c0]
mov eax, dword [edx]
test eax, eax
je 0x40d6c6
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
test eax, eax
je 0x40d6c6
push 0xa
push eax
call fcn.0040f0b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x40e8ff
mov ecx, dword [eax + 6]
mov edx, dword [eax + 0xa]
mov dword [0x45d140], ecx
mov dword [0x45d144], edx
mov ecx, dword [eax + 0xe]
mov edx, dword [eax + 0x12]
mov dword [0x45d148], ecx
mov dword [0x45d14c], edx
mov ecx, dword [eax + 0x16]
mov edx, dword [eax + 0x1a]
push 0x45d140
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0042a790
add esp, 4
push 0xa
call fcn.0041ee80
jmp 0x40d763
mov eax, dword [0x45d0a0]
mov ecx, dword [0x45d0a4]
mov edx, dword [0x45d0a8]
mov dword [0x45d140], eax
mov eax, dword [0x45d0ac]
mov dword [0x45d144], ecx
mov ecx, dword [0x45d0b0]
mov dword [0x45d148], edx
mov edx, dword [0x45d0b4]
mov dword [0x45d14c], eax
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
jmp 0x40d766
push 0xa
push eax
call fcn.0040f0b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x40e8ff
mov ecx, dword [eax + 6]
mov edx, dword [eax + 0xa]
mov dword [0x45d140], ecx
mov dword [0x45d144], edx
mov ecx, dword [eax + 0xe]
mov edx, dword [eax + 0x12]
mov dword [0x45d148], ecx
mov dword [0x45d14c], edx
mov ecx, dword [eax + 0x16]
mov edx, dword [eax + 0x1a]
push 0x45d140
mov dword [0x45d150], ecx
mov dword [0x45d154], edx
call fcn.0042a790
add esp, 4
mov al, byte [0x45bd3c]
test al, al
jne 0x40d888
mov ecx, dword [0x45d3a0]
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x18], eax
je 0x40d814
push 1
push eax
call fcn.0040f0b0
mov ebx, eax
add esp, 8
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x70]
mov edi, dword [ebx + 6]
mov dword [0x45d7c4], edi
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40d7cc
test cl, cl
je 0x40d7c8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40d7cc
add eax, 2
add esi, 2
test cl, cl
jne 0x40d7a8
xor eax, eax
jmp 0x40d7d1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40d82a
push 2
push edi
call fcn.00443ad0
add esp, 8
mov dword [0x45d7c4], eax
test eax, eax
je 0x40e8ff
mov cl, byte [esp + 0x70]
mov byte [eax], cl
mov edx, dword [0x45d7c4]
mov ecx, dword [esp + 0x18]
mov byte [edx + 1], 0
mov eax, dword [0x45d7c4]
push ecx
mov dword [ebx + 6], eax
call fcn.0043afa0
add esp, 4
jmp 0x40d82a
lea edx, [esp + 0x70]
push edx
push ecx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov eax, dword [esp + 0x70]
push eax
call fcn.0041ee80
mov ecx, dword [0x45d3a0]
add esp, 4
mov eax, dword [ecx + 4]
test eax, eax
jne 0x40d86b
push eax
push eax
push ecx
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov ecx, dword [0x45d3a0]
mov edx, dword [ecx + 4]
mov dword [0x45d3a0], edx
jmp 0x40b46f
push eax
call fcn.0042ab40
mov ecx, dword [0x45d3a0]
add esp, 4
mov edx, dword [ecx + 4]
mov dword [0x45d3a0], edx
jmp 0x40b46f
mov eax, dword [0x45d140]
mov ecx, dword [0x45d144]
mov edx, dword [0x45d148]
mov dword [0x45d120], eax
mov eax, dword [0x45d14c]
mov dword [0x45d124], ecx
mov ecx, dword [0x45d150]
mov dword [0x45d12c], eax
mov eax, dword [esp + 0x70]
mov dword [0x45d128], edx
mov edx, dword [0x45d154]
push eax
mov dword [0x45d130], ecx
mov dword [0x45d134], edx
call fcn.0041ee80
mov ecx, dword [0x45d3a0]
add esp, 4
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x40d9be
push 1
push ebx
call fcn.0040f0b0
add esp, 8
test eax, eax
je 0x40e8ff
mov edi, dword [eax + 6]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x11c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xa
mov eax, ecx
mov esi, edi
mov edi, edx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0040f0b0
mov esi, eax
add esp, 8
test esi, esi
je 0x40e8ff
push 0x45d140
call fcn.0042a720
mov ecx, dword [0x45d140]
mov edx, dword [0x45d144]
mov dword [esi + 6], ecx
mov dword [esi + 0xa], edx
mov eax, dword [0x45d148]
mov ecx, dword [0x45d14c]
mov dword [esi + 0xe], eax
add esp, 4
mov dword [esi + 0x12], ecx
mov edx, dword [0x45d150]
mov eax, dword [0x45d154]
mov dword [esi + 0x16], edx
push 0x45d140
mov dword [esi + 0x1a], eax
call fcn.0042a790
add esp, 4
push ebx
call fcn.0043afa0
mov eax, dword [esp + 0x121]
add esp, 4
test al, al
je 0x40d9ae
mov ecx, dword [esp + 0x11c]
push eax
push ecx
call fcn.0041f070
add esp, 8
jmp 0x40d9be
mov edx, dword [esp + 0x11c]
push edx
call fcn.0041ee80
add esp, 4
fld qword [0x45d130]
fcomp qword [0x44d058]
fnstsw ax
test ah, 0x40
je 0x40d9e7
mov eax, dword [0x45f728]
mov ecx, dword [0x45f72c]
mov dword [0x45d130], eax
mov dword [0x45d134], ecx
push 0x45d120
call fcn.0042a720
mov edx, dword [0x45f73c]
mov eax, dword [0x45f738]
movsx ecx, word [0x45f730]
add esp, 4
push 0x1388
push edx
movsx edx, word [0x45d0d8]
push eax
push 0x27
push ecx
mov eax, dword [0x45bb2c]
push 0x3e
mov ecx, dword [0x45bb28]
push 0x45b908
push 6
push 0x45f740
push 0xd2
push 0x45b8f0
push 8
push edx
mov edx, dword [0x456bc4]
push 0x47
push eax
mov eax, dword [0x456bc0]
push ecx
push 0x33
push edx
mov edx, dword [0x45bb34]
push eax
mov eax, dword [0x45bb30]
push 0x29
push 0x45d200
lea ecx, [esp + 0xc4]
push 7
push ecx
mov ecx, dword [0x456bbc]
push 1
push edx
mov edx, dword [0x456bb8]
push eax
push 0x32
push ecx
push edx
push 0x28
push 0x45d120
push 0xa
push str.TEXT
push 0x139c
call fcn.0043d570
add esp, 0x88
mov esi, eax
push 0x45d120
call fcn.0042a790
add esp, 4
push esi
call fcn.0043b020
add esp, 4
cmp eax, 0x13ec
jne 0x40e8ff
push esi
call fcn.004418c0
add esp, 4
lea eax, [esp + 0x2c]
push eax
call fcn.0043a7f0
add esp, 4
lea ecx, [esp + 0x2c]
push ecx
call fcn.0043a620
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x40e8ff
mov edx, dword [0x45d3a0]
push eax
push edx
call fcn.0042ac80
add esp, 8
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov eax, dword [eax + 4]
test eax, eax
je 0x40b46f
push eax
call fcn.0042ab40
add esp, 4
jmp 0x40b46f
mov cl, byte [eax + 0x455298]
mov byte [esp + 0x70], 0xc9
mov byte [esp + 0x71], cl
mov eax, dword [0x45b8e4]
mov byte [esp + 0x72], 0
or eax, esi
mov dword [0x45b8e4], eax
jmp 0x40e304
test al, al
je 0x40b46f
cmp dx, di
je 0x40b46f
mov eax, dword [0x45cff0]
xor edi, edi
cmp eax, 4
mov dword [esp + 0x18], edi
ja case.default.0x40db70
jmp dword [eax*4 + 0x40ecd8]
mov ecx, edx
xor eax, eax
and ecx, 0xffff
movsx esi, byte [eax + str.KkOIoJjPUupHhYyNnBbMmLl]
cmp esi, ecx
je 0x40db92
inc eax
cmp eax, 0x17
jl 0x40db81
cmp eax, 0x17
mov byte [0x45d003], 1
mov dword [0x45cff0], 3
je case.0x40db70.3
mov al, byte [0x45d000]
mov byte [0x45cfec], dl
mov byte [esp + 0x25], dl
mov byte [esp + 0x24], al
mov byte [esp + 0x26], 0
xor edx, edx
mov edi, 0x450d00
mov eax, dword [edi]
lea esi, [esp + 0x24]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40dbf5
test cl, cl
je 0x40dbf1
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40dbf5
add eax, 2
add esi, 2
test cl, cl
jne 0x40dbd1
xor eax, eax
jmp 0x40dbfa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40dc0a
add edi, 4
inc edx
cmp edi, 0x450d38
jl 0x40dbcb
cmp edx, 0xe
jne 0x40dc37
call fcn.0042acd0
mov eax, dword [0x45b8e4]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
or al, 2
mov dword [0x45cff0], 1
mov dword [0x45b8e4], eax
jmp case.0x40db70.1
mov cl, byte [0x45cff6]
mov al, byte [edx + 0x450d38]
mov dl, byte [0x45d002]
push ecx
push eax
push edx
mov byte [0x45cfed], al
call fcn.00401eb0
add esp, 0xc
test ax, ax
jne 0x40dc70
mov al, byte [esp + 0x16]
mov edi, 1
mov byte [esp + 0x70], al
jmp 0x40e11e
mov edx, dword [0x45b8e4]
xor ecx, ecx
and edx, 0xffffffdf
mov cl, ah
or edx, 1
mov byte [esp + 0x70], cl
mov byte [esp + 0x71], al
mov edi, 2
mov dword [0x45cff0], 3
mov byte [0x45d003], 1
mov dword [0x45b8e4], edx
jmp 0x40e2ff
mov ecx, edx
xor eax, eax
and ecx, 0xffff
movsx esi, byte [eax + str.RrSsEFfAaQTtDdWCcZzXxVvGg]
cmp esi, ecx
je 0x40dcc4
inc eax
cmp eax, 0x19
jl 0x40dcb3
cmp eax, 0x19
jne 0x40de2c
xor esi, esi
movsx eax, byte [esi + str.KkOIoJjPUupHhYyNnBbMmLl]
cmp eax, ecx
je 0x40dce0
inc esi
cmp esi, 0x17
jl 0x40dccf
cmp esi, 0x17
jne 0x40dd47
call fcn.0042acd0
mov esi, dword [0x45b8e4]
mov ecx, dword [esp + 0xc]
or esi, 2
xor eax, eax
mov dword [0x45b8e4], esi
and ecx, 0xffff
movsx edx, byte [eax + str.RrSsEeFfAaQqTtDdWwCcZzXxVvGg]
cmp edx, ecx
je 0x40dd16
inc eax
cmp eax, 0x1c
jl 0x40dd05
cmp eax, 0x1c
je 0x40dd29
call fcn.0042acd0
mov edx, dword [esp + 0xc]
jmp case.0x40db70.0
mov al, byte [esp + 0x16]
mov edi, 1
mov byte [esp + 0x70], al
mov eax, dword [0x45b8e4]
or al, 0x28
mov dword [0x45b8e4], eax
jmp 0x40e2ff
mov cl, byte [0x45cfed]
mov dl, byte [0x45d002]
push 1
push ecx
push edx
mov byte [0x45cff6], 1
call fcn.00401eb0
mov dl, byte [esp + 0x18]
xor ecx, ecx
mov cl, ah
mov byte [0x45d000], dl
mov dl, byte [esi + 0x450ce8]
mov byte [esp + 0x7c], cl
movzx cx, byte [0x45d004]
mov byte [esp + 0x7d], al
add esp, 0xc
mov dword [esp + 0xc], ecx
xor eax, eax
mov edi, 2
mov byte [0x45cfed], dl
and ecx, 0xffff
movsx esi, byte [eax + str.RrSsEeFfAaQqTtDdWwCcZzXxVvGg]
cmp esi, ecx
je 0x40ddb2
inc eax
cmp eax, 0x1c
jl 0x40dda1
mov cl, byte [0x45cff6]
mov al, byte [eax + 0x450cb0]
push ecx
push edx
push eax
mov byte [0x45d002], al
call fcn.00401eb0
add esp, 0xc
test ax, ax
jne 0x40ddf6
call fcn.0042acd0
mov eax, dword [0x45b8e4]
mov dl, byte [esp + 0x16]
or al, 0x2a
mov byte [esp + 0x70], dl
mov edi, 1
mov dword [0x45b8e4], eax
jmp 0x40e2ff
xor ecx, ecx
mov byte [esp + 0x49], al
mov cl, ah
mov eax, dword [0x45b8e4]
or al, 0x76
mov byte [esp + 0x48], cl
mov byte [esp + 0x4a], 0
mov byte [0x45d003], 0
mov byte [0x45cff7], 0
mov dword [0x45cff0], edi
mov dword [0x45b8e4], eax
jmp 0x40e2ff
mov al, byte [0x45d004]
mov byte [0x45d001], dl
mov byte [esp + 0x25], dl
mov byte [esp + 0x24], al
mov byte [esp + 0x26], 0
xor edx, edx
mov edi, 0x450d88
mov eax, dword [edi]
lea esi, [esp + 0x24]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40de75
test cl, cl
je 0x40de71
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40de75
add eax, 2
add esi, 2
test cl, cl
jne 0x40de51
xor eax, eax
jmp 0x40de7a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40de8a
add edi, 4
inc edx
cmp edi, 0x450de0
jl 0x40de4b
cmp edx, 0x16
jne 0x40deb5
call fcn.0042acd0
movzx dx, byte [0x45d001]
mov eax, dword [0x45b8e4]
mov edi, dword [esp + 0x18]
or al, 2
mov dword [esp + 0xc], edx
mov dword [0x45b8e4], eax
jmp case.0x40db70.0
mov al, byte [edx + 0x450de0]
mov cl, byte [0x45cfed]
mov dl, byte [0x45d002]
push eax
push ecx
push edx
mov byte [0x45cff6], al
call fcn.00401eb0
add esp, 0xc
test ax, ax
jne 0x40defa
call fcn.0042acd0
mov eax, dword [0x45b8e4]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
or al, 2
mov dword [0x45b8e4], eax
jmp case.0x40db70.0
xor ecx, ecx
mov byte [esp + 0x71], al
mov cl, ah
mov eax, dword [0x45b8e4]
or al, 1
mov byte [esp + 0x70], cl
mov edi, 2
mov byte [0x45d005], 1
mov dword [0x45cff0], 5
mov dword [0x45b8e4], eax
jmp 0x40e2ff
mov ecx, edx
xor eax, eax
and ecx, 0xffff
movsx ebx, byte [eax + str.KkOIoJjPUupHhYyNnBbMmLl]
cmp ebx, ecx
je 0x40df48
inc eax
cmp eax, 0x17
jl 0x40df37
cmp eax, 0x17
jne 0x40e1fc
call fcn.0042acd0
mov eax, dword [0x45b8e4]
mov edx, dword [esp + 0xc]
or al, 3
mov ecx, edx
mov dword [0x45b8e4], eax
xor eax, eax
and ecx, 0xffff
movsx ebx, byte [eax + str.RrSsEeFfAaQqTtDdWwCcZzXxVvGg]
cmp ebx, ecx
je 0x40df81
inc eax
cmp eax, 0x1c
jl 0x40df70
cmp eax, 0x1c
je 0x40e1dc
mov ecx, edx
xor eax, eax
and ecx, 0xffff
movsx esi, byte [eax + str.RrSsEeFfAaQqTtDdWwCcZzXxVvGg]
cmp esi, ecx
je 0x40dfa5
inc eax
cmp eax, 0x1c
jl 0x40df94
cmp eax, 0x1c
jne 0x40e18a
mov ecx, edx
xor eax, eax
and ecx, 0xffff
movsx esi, byte [eax + str.KkOIoJjPUupHhYyNnBbMmLl]
cmp esi, ecx
je 0x40dfc9
inc eax
cmp eax, 0x17
jl 0x40dfb8
cmp eax, 0x17
jne 0x40e0ca
mov ecx, edx
xor eax, eax
and ecx, 0xffff
movsx esi, byte [eax + str.RrSsEFfAaQTtDdWCcZzXxVvGg]
cmp esi, ecx
je 0x40dfed
inc eax
cmp eax, 0x19
jl 0x40dfdc
cmp eax, 0x19
jne 0x40e053
xor eax, eax
movsx edx, byte [eax + str.RrSsEeFfAaQqTtDdWwCcZzXxVvGg]
cmp edx, ecx
je 0x40e005
inc eax
cmp eax, 0x1c
jl 0x40dff4
cmp eax, 0x1c
jne 0x40e080
xor eax, eax
movsx edx, byte [eax + str.KkOIoJjPUupHhYyNnBbMmLl]
cmp edx, ecx
je 0x40e01d
inc eax
cmp eax, 0x17
jl 0x40e00c
cmp eax, 0x17
je 0x40e046
call fcn.0042acd0
mov eax, dword [0x45b8e4]
mov edx, dword [esp + 0xc]
or al, 2
mov dword [0x45cff0], 1
mov dword [0x45b8e4], eax
jmp case.0x40db70.1
mov al, byte [esp + 0x16]
mov byte [esp + edi + 0x70], al
jmp 0x40e11d
mov al, byte [eax + 0x450d68]
mov cl, byte [0x45cfed]
mov byte [0x45d004], dl
mov dl, byte [0x45d002]
push eax
push ecx
push edx
mov byte [0x45cff6], al
call fcn.00401eb0
add esp, 0xc
test ax, ax
jne 0x40e09a
call fcn.0042acd0
mov eax, dword [0x45b8e4]
mov edx, dword [esp + 0xc]
or al, 2
mov dword [0x45b8e4], eax
jmp case.0x40db70.0
xor ecx, ecx
inc edi
mov cl, ah
mov byte [0x45cff7], 1
mov byte [esp + edi + 0x6f], cl
mov byte [esp + edi + 0x70], al
mov eax, dword [0x45b8e4]
inc edi
or al, 1
mov dword [0x45cff0], 4
mov dword [0x45b8e4], eax
jmp 0x40e2ff
mov al, byte [eax + 0x450ce8]
mov byte [0x45d000], dl
mov dl, byte [0x45cff6]
mov byte [0x45cfed], al
push edx
push eax
mov al, byte [0x45d002]
push eax
call fcn.00401eb0
add esp, 0xc
test ax, ax
jne 0x40e134
cmp edi, 1
jle 0x40e115
mov cl, byte [esp + 0x16]
mov byte [esp + 0x49], al
mov eax, dword [0x45b8e4]
mov byte [esp + 0x48], cl
or al, 0x40
mov dword [0x45b8e4], eax
jmp 0x40e11e
mov dl, byte [esp + 0x16]
mov byte [esp + edi + 0x70], dl
inc edi
call fcn.0042acd0
mov eax, dword [0x45b8e4]
or al, 0x2a
mov dword [0x45b8e4], eax
jmp 0x40e2ff
cmp edi, 1
jle 0x40e153
xor ecx, ecx
mov byte [esp + 0x49], al
mov cl, ah
mov eax, dword [0x45b8e4]
mov byte [esp + 0x48], cl
mov byte [esp + 0x4a], 0
or al, 0x60
jmp 0x40e168
xor edx, edx
inc edi
mov dl, ah
mov byte [esp + edi + 0x6f], dl
mov byte [esp + edi + 0x70], al
mov eax, dword [0x45b8e4]
inc edi
and al, 0xdf
mov dword [0x45b8e4], eax
or al, 1
mov dword [0x45cff0], 2
mov byte [0x45cff4], 1
mov dword [0x45b8e4], eax
jmp 0x40e2ff
mov cl, byte [0x45cff6]
mov dl, byte [0x45cfed]
mov al, byte [eax + 0x450cb0]
push ecx
push edx
push eax
mov byte [0x45d002], al
call fcn.00401eb0
xor ecx, ecx
add esp, 0xc
mov cl, ah
mov dword [0x45cff0], 1
mov byte [esp + edi + 0x70], cl
inc edi
mov byte [0x45cff5], 1
mov byte [esp + edi + 0x70], al
mov eax, dword [0x45b8e4]
inc edi
or al, 0x21
mov dword [0x45b8e4], eax
jmp 0x40e2ff
mov eax, dword [0x45b8e4]
mov dl, byte [esp + 0x16]
or eax, esi
mov byte [esp + 0x70], dl
or al, 8
mov edi, 1
mov dword [0x45b8e4], eax
jmp 0x40e2ff
movzx cx, byte [0x45d004]
mov esi, eax
mov dword [esp + 0xc], ecx
xor eax, eax
mov byte [0x45d000], dl
and ecx, 0xffff
movsx edx, byte [eax + str.RrSsEFfAaQTtDdWCcZzXxVvGg]
cmp edx, ecx
je 0x40e229
inc eax
cmp eax, 0x19
jl 0x40e218
mov al, byte [eax + 0x450d68]
mov cl, byte [0x45d002]
mov byte [0x45cff6], al
push eax
mov al, byte [0x45cfed]
push eax
push ecx
call fcn.00401eb0
mov cl, byte [esi + 0x450ce8]
xor edx, edx
mov dl, ah
mov byte [esp + 0x7d], al
add esp, 0xc
mov byte [esp + 0x70], dl
xor eax, eax
xor edx, edx
mov dl, byte [0x45d001]
mov edi, 2
mov byte [0x45cfed], cl
mov byte [0x45cff6], 1
movsx esi, byte [eax + str.RrSsEeFfAaQqTtDdWwCcZzXxVvGg]
cmp esi, edx
je 0x40e289
inc eax
cmp eax, 0x1c
jl 0x40e278
mov al, byte [eax + 0x450cb0]
push 1
push ecx
push eax
mov byte [0x45d002], al
call fcn.00401eb0
add esp, 0xc
test ax, ax
jne 0x40e2c0
mov al, byte [esp + 0x16]
mov edi, 1
mov byte [esp + 0x70], al
mov eax, dword [0x45b8e4]
or al, 0x2b
mov dword [0x45b8e4], eax
jmp 0x40e2ff
xor ecx, ecx
mov byte [esp + 0x49], al
mov cl, ah
mov eax, dword [0x45b8e4]
or al, 0x73
mov byte [esp + 0x48], cl
mov byte [esp + 0x4a], 0
mov dword [0x45b8e4], eax
mov byte [0x45d003], 0
mov byte [0x45cff7], 0
mov byte [0x45d005], 0
mov dword [0x45cff0], edi
mov byte [0x45cff6], 1
mov byte [esp + edi + 0x70], 0
mov edx, dword [0x45d3a0]
push edx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
push 0x45d240
push 0x45d140
call fcn.0040ab80
mov edx, dword [0x45b8e4]
add esp, 8
test dl, 2
je 0x40e4f5
test dl, 0x10
je 0x40e42b
mov ecx, dword [0x45d3a0]
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x40e36e
lea eax, [esp + 0x70]
push eax
push ecx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
jmp 0x40e3e9
mov ecx, dword [esp + 0x18]
push 1
push ecx
call fcn.0040f0b0
mov ebx, eax
add esp, 8
mov dword [esp + 0x10], ebx
mov eax, dword [ebx + 6]
push eax
mov dword [0x45d7c4], eax
call fcn.004434f0
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.004433d0
mov edx, eax
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [0x45d7c4], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x45d7c4]
mov dword [ebx + 6], ecx
call fcn.0043afa0
add esp, 4
mov edx, dword [0x45b8e4]
and edx, 0xffffffef
test dl, 0x40
mov dword [0x45b8e4], edx
je 0x40e42b
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x70]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
and edx, 0xffffffbf
rep movsb byte es:[edi], byte [esi]
mov dword [0x45b8e4], edx
mov ecx, dword [0x45d3a0]
mov eax, dword [ecx + 8]
test eax, eax
je 0x40e4e8
test dl, 1
je 0x40e4e8
push 1
push eax
call fcn.0040f0b0
mov edx, dword [eax + 6]
mov dword [esp + 0x18], eax
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
add esp, 8
mov dword [0x45d7c4], edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jne 0x40e47b
mov cl, byte [edx]
push ecx
call fcn.0041ee80
add esp, 4
jmp 0x40e48a
mov al, byte [edx + 1]
mov cl, byte [edx]
push eax
push ecx
call fcn.0041f070
add esp, 8
mov edx, dword [0x45d3a0]
mov eax, dword [edx + 4]
test eax, eax
jne 0x40e4d3
call fcn.0042a850
mov ecx, dword [0x45d3a0]
mov dword [0x45f720], eax
push 0x45063c
mov dword [ecx + 4], eax
mov edx, dword [0x45f720]
mov eax, dword [0x45d3a0]
mov dword [edx], eax
mov ecx, dword [0x45f720]
push ecx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov edx, dword [0x45d3a0]
mov ecx, dword [edx + 4]
mov edx, dword [0x45b8e4]
mov dword [0x45d3a0], ecx
and edx, 0xfffffffd
test dl, 8
je 0x40e4fb
and edx, 0xfffffffe
jmp 0x40e4fb
mov ecx, dword [0x45d3a0]
mov al, byte [0x45bd3c]
and edx, 0xffffffef
test al, al
mov dword [0x45b8e4], edx
jne 0x40e634
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x18], eax
je 0x40e5a1
push 1
push eax
call fcn.0040f0b0
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x40e8ff
mov eax, dword [ebx + 6]
push eax
mov dword [0x45d7c4], eax
call fcn.004434f0
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.004433d0
mov edx, eax
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [0x45d7c4], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x45d7c4]
mov dword [ebx + 6], ecx
call fcn.0043afa0
add esp, 4
jmp 0x40e5b7
lea eax, [esp + 0x70]
push eax
push ecx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov al, byte [0x45b8e4]
test al, 8
jne 0x40e5c4
test al, 1
jne 0x40e620
mov al, byte [esp + 0x71]
test al, al
je 0x40e5e0
mov ecx, dword [esp + 0x71]
mov edx, dword [esp + 0x70]
push ecx
push edx
call fcn.0041f070
add esp, 8
jmp 0x40e5ed
mov eax, dword [esp + 0x70]
push eax
call fcn.0041ee80
add esp, 4
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x40e60b
push 0
push 0
push eax
call fcn.0042a890
mov eax, dword [0x45d3a0]
add esp, 0xc
mov ecx, dword [eax + 4]
mov eax, dword [0x45b8e4]
and al, 0xf7
mov dword [0x45d3a0], ecx
mov dword [0x45b8e4], eax
mov edx, dword [0x45d3a0]
push edx
call fcn.0042ab40
add esp, 4
jmp 0x40b46f
test dl, 0x20
je 0x40e6cf
call fcn.0042a850
test eax, eax
mov dword [0x45f720], eax
je 0x40e8e9
mov edx, dword [0x45d3a0]
mov ecx, dword [edx]
test ecx, ecx
jne 0x40e67b
mov dword [eax + 4], edx
mov ecx, dword [0x45d3a0]
mov eax, dword [0x45f720]
mov dword [ecx], eax
mov eax, dword [0x45d7c0]
mov edx, dword [0x45f720]
mov dword [eax + 8], edx
jmp 0x40e6aa
mov dword [ecx + 4], eax
mov edx, dword [0x45d3a0]
mov ecx, dword [0x45f720]
mov eax, dword [edx]
mov dword [ecx], eax
mov edx, dword [0x45f720]
mov eax, dword [0x45d3a0]
mov dword [edx + 4], eax
mov edx, dword [0x45d3a0]
mov ecx, dword [0x45f720]
mov dword [edx], ecx
mov eax, dword [0x45f720]
lea ecx, [esp + 0x70]
push ecx
push eax
mov dword [0x45d3a0], eax
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
jmp 0x40e76b
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x18], eax
je 0x40e755
mov edx, eax
push 1
push edx
call fcn.0040f0b0
mov ebx, eax
add esp, 8
mov dword [esp + 0x10], ebx
mov eax, dword [ebx + 6]
push eax
mov dword [0x45d7c4], eax
call fcn.004434f0
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.004433d0
mov edx, eax
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov dword [0x45d7c4], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x45d7c4]
mov dword [ebx + 6], ecx
call fcn.0043afa0
add esp, 4
jmp 0x40e76b
lea eax, [esp + 0x70]
push eax
push ecx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov eax, dword [0x45b8e4]
and al, 0xdf
test al, 8
mov dword [0x45b8e4], eax
jne 0x40e783
test al, 1
jne 0x40e814
mov al, byte [esp + 0x71]
test al, al
jne 0x40e79a
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0041ee80
add esp, 4
jmp 0x40e7ac
mov edx, dword [esp + 0x71]
mov eax, dword [esp + 0x70]
push edx
push eax
call fcn.0041f070
add esp, 8
mov eax, dword [0x45d3a0]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x40e7d5
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov eax, dword [eax + 4]
mov dword [0x45d3a0], eax
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x40e7f7
push 0x45063c
push eax
call fcn.0042a9f0
mov eax, dword [0x45d3a0]
add esp, 8
mov ecx, dword [0x45b8e4]
push eax
and ecx, 0xfffffff7
mov dword [0x45b8e4], ecx
call fcn.0042ab40
add esp, 4
jmp 0x40b46f
mov eax, dword [0x45d3a0]
push eax
call fcn.0042ab40
add esp, 4
jmp 0x40b46f
mov ecx, dword [0x45d3a0]
push ecx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
test byte [0x45b8e4], 1
je 0x40e872
mov eax, dword [0x45d3a0]
cmp dword [eax + 4], edi
jne 0x40e869
push edi
push edi
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov edx, dword [eax + 4]
mov dword [0x45d3a0], edx
call fcn.0042acd0
mov dword [0x45b8e4], edi
mov byte [0x45bd4c], 1
mov byte [0x45bd40], 0
jmp 0x40b46a
mov eax, dword [ebp + 8]
push eax
call fcn.0040ae30
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str._nERROR:_Out_of_memory__
call fcn.0043caa0
mov eax, dword [0x45d7c0]
add esp, 4
cmp eax, edi
je 0x40e8c2
push eax
call fcn.0042a830
add esp, 4
mov eax, dword [0x45d3a0]
cmp eax, edi
je 0x40e8d4
push eax
call fcn.0042a830
add esp, 4
mov dword [0x45d7c0], edi
mov dword [0x45f724], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str._nERROR:_Out_of_memory__
call fcn.0043caa0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x45d3a0]
push ecx
call fcn.0040eed0
mov edx, dword [ebp + 8]
add esp, 4
push edx
call fcn.0040ae30
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0xf4]
lea ecx, [esp + 0x34]
push eax
push ecx
push 0xb
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], edi
call fcn.0043ee50
add esp, 0xc
cmp eax, 0x13ec
jne 0x40b46f
mov eax, dword [esp + 0x34]
sub eax, 2
je 0x40ebb1
dec eax
jne 0x40ecc0
cmp word [esp + 0xf8], 0x1391
jne 0x40ecc0
mov edx, dword [0x45d3a0]
push edx
call fcn.0040eed0
add esp, 4
test eax, eax
je 0x40e8ff
call fcn.0042acd0
test byte [0x45b8e4], 1
mov eax, dword [0x45d3a0]
je 0x40e9cc
cmp dword [eax + 4], edi
jne 0x40e9c4
push 1
push 0x45063c
push eax
call fcn.0042a890
add esp, 0xc
test eax, eax
je 0x40e8ff
mov eax, dword [0x45d3a0]
mov eax, dword [eax + 4]
mov dword [0x45d3a0], eax
mov ecx, dword [esp + 0xfa]
mov edx, dword [esp + 0xfe]
mov esi, dword [esp + 0x10]
mov dword [0x45d140], ecx
mov ecx, dword [esp + 0x102]
mov dword [0x45d144], edx
mov edx, dword [esp + 0x106]
mov dword [0x45d148], ecx
mov ecx, dword [esp + 0x10a]
mov dword [0x45d14c], edx
mov edx, dword [esp + 0x10e]
mov dword [0x45d150], ecx
mov ecx, dword [0x45d7c0]
mov dword [0x45b8e4], edi
mov dword [0x45d154], edx
cmp dword [ecx + 4], edi
jne 0x40ea88
cmp dword [ecx + 8], eax
jne 0x40ea88
mov edx, dword [eax + 4]
test edx, edx
jne 0x40ea88
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x40eb0e
push 1
push ebx
call fcn.0040f0b0
mov esi, eax
add esp, 8
test esi, esi
je 0x40ea62
mov edx, dword [esi + 6]
mov dword [0x45d7c4], edx
jmp 0x40ea68
mov edx, dword [0x45d7c4]
test esi, esi
je 0x40eab1
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jne 0x40ea82
cmp byte [edx], 0x20
je 0x40eab1
mov ecx, dword [0x45d7c0]
mov eax, dword [ecx + 4]
test eax, eax
je 0x40eb33
mov ecx, eax
mov dword [0x45d7c0], ecx
mov eax, dword [ecx + 4]
test eax, eax
jne 0x40ea93
mov eax, dword [ecx + 8]
xor edi, edi
mov dword [0x45d3a0], eax
jmp 0x40ea2a
push 0xa
push ebx
mov dword [esp + 0x18], esi
call fcn.0040f0b0
mov ecx, dword [0x45d144]
mov esi, eax
mov eax, dword [0x45d140]
add esp, 8
mov dword [esi + 6], eax
mov dword [esi + 0xa], ecx
mov edx, dword [0x45d148]
mov eax, dword [0x45d14c]
mov dword [esi + 0xe], edx
mov dword [esi + 0x12], eax
mov ecx, dword [0x45d150]
mov edx, dword [0x45d154]
mov dword [esi + 0x16], ecx
push ebx
mov dword [esp + 0x14], esi
mov dword [esi + 0x1a], edx
call fcn.0043afa0
mov edx, dword [esp + 0x10]
add esp, 4
xor edi, edi
jmp 0x40ecc8
push 0x45063c
push eax
mov dword [esp + 0x18], esi
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov edx, dword [esp + 0xc]
xor edi, edi
jmp 0x40ecc8
mov dword [esp + 0x10], esi
call fcn.0042a800
test eax, eax
mov dword [0x45d39c], eax
je 0x40e8ff
mov ecx, dword [0x45d7c0]
mov dword [ecx + 4], eax
mov eax, dword [0x45d39c]
mov edx, dword [0x45d7c0]
mov dword [eax], edx
call fcn.0042a850
test eax, eax
mov dword [0x45f720], eax
je 0x40e8ff
mov ecx, dword [0x45d39c]
push 0x45063c
mov dword [ecx + 8], eax
mov eax, dword [0x45f720]
mov edx, dword [0x45d39c]
push eax
mov dword [0x45d3a0], eax
mov dword [0x45d7c0], edx
call fcn.0042a9f0
add esp, 8
test eax, eax
je 0x40e8ff
mov edx, dword [esp + 0xc]
xor edi, edi
jmp 0x40ecc8
cmp word [esp + 0xf8], 0x138b
jne 0x40ecc0
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call esi
test ah, 0x80
je 0x40ebd8
mov dword [esp + 0x28], 1
test al, 1
je 0x40ebe4
mov dword [esp + 0x28], 1
push 0x24
call esi
test ah, 0x80
jne 0x40ecb2
test al, 1
jne 0x40ecb2
push 0x23
call esi
test ah, 0x80
jne 0x40eca4
test al, 1
jne 0x40eca4
mov eax, dword [esp + 0xfa]
lea ecx, [esp + 0xc]
push ecx
mov dword [esp + 0x10], eax
call fcn.0040a940
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
add esp, 4
mov al, dl
test dl, dl
mov dword [esp + 0x18], 1
mov byte [esp + 0x16], al
je 0x40ec91
mov cl, byte [0x45bd40]
test cl, cl
jne 0x40ec5e
mov cl, byte [0x45bd48]
test cl, cl
jne 0x40ec5e
mov cl, byte [0x45bd4c]
test cl, cl
je 0x40ec91
cmp dl, 0x41
jb 0x40ec68
cmp dl, 0x5a
jbe 0x40ec72
cmp dl, 0x61
jb 0x40ec91
cmp dl, 0x7a
ja 0x40ec91
cmp dl, 0x61
jb 0x40ec86
cmp dl, 0x7a
ja 0x40ec86
add edx, 0xffe0
mov dword [esp + 0xc], edx
cmp esi, edi
je 0x40ecc4
add edx, 0x20
mov dword [esp + 0xc], edx
cmp esi, edi
je 0x40ecc4
cmp al, 0x20
jne 0x40ecc4
mov edx, 0x8500
mov dword [esp + 0xc], edx
jmp 0x40ecc4
mov edx, 0x4f00
mov dword [esp + 0xc], edx
jmp 0x40b503
mov edx, 0x4700
mov dword [esp + 0xc], edx
jmp 0x40b503
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x18], edi
je 0x40b46f
jmp 0x40b507