Function at 0x4541e0
Capabilities:
Authenticate hmac
Check for unmoving mouse cursor
Check http status code
Encode data using xor
Encrypt data using speck
Get common file path
Get graphical window text
Log keystrokes via polling
Open clipboard
Read clipboard data
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff74
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x8c], eax
push 0x258
push 0
call sub.kernel32.dll_GlobalAlloc
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
call fcn.0043128c
or eax, eax
js 0x459c91
mov dword [ebp - 0x2c], eax
imul edx, eax, 0x32
add edx, 0x6682df
mov dword [ebp - 0x3c], edx
push 0x11
call sub.user32.dll_GetKeyState
shr ax, 8
test ax, ax
seta bl
push 0x10
call sub.user32.dll_GetKeyState
shr ax, 8
test ax, ax
seta al
add eax, eax
add bl, al
push 0x12
call sub.user32.dll_GetKeyState
shr ax, 8
test ax, ax
seta al
shl eax, 2
add bl, al
mov byte [ebp - 0x44], bl
mov eax, dword [ebp + 8]
call fcn.004312a8
call fcn.0043128c
movzx edx, byte [0x4d4a19]
cmp eax, dword [edx*4 + 0x676d74]
je 0x454287
cmp dword [ebp - 0x2c], 0xc8
jne 0x45428b
xor eax, eax
jmp 0x45428d
mov al, 1
mov byte [ebp - 0x31], al
mov eax, dword [ebp + 0xc]
cmp eax, 0x100
jg 0x454338
je 0x454b37
cmp eax, 0x14
jg 0x4542ff
je 0x4547c6
cmp eax, 0xf
ja case.0x454394.517
jmp dword [eax*4 + 0x4542bf]
cmp eax, 0x2b
jg 0x454321
je 0x456402
sub eax, 0x20
je 0x454663
sub eax, 4
je 0x459b52
jmp case.0x454394.517
sub eax, 0x2c
je 0x459b34
sub eax, 0x58
je 0x454818
jmp case.0x454394.517
cmp eax, 0x201
jg 0x454386
je case.0x454394.515
cmp eax, 0x111
jg 0x45436b
je 0x4548e2
sub eax, 0x102
je 0x455632
sub eax, 2
je 0x4555d7
jmp case.0x454394.517
sub eax, 0x134
je 0x459b87
sub eax, 0xcc
je 0x4546c2
jmp case.0x454394.517
add eax, 0xfffffdfe
cmp eax, 0x12
ja case.0x454394.517
jmp dword [eax*4 + 0x45439b]
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x10], 0
je 0x4543fc
cmp word [ebp - 0x2c], 0x4b0
jne case.0x454394.517
pushal
mov eax, dword [eax + 0x11]
mov dword [ebp - 0xc], eax
lea edi, [ebp - 0x88]
mov ebx, dword [ebp + 8]
push edi
push ebx
push edi
push ebx
call sub.user32.dll_BeginPaint
mov eax, dword [edi]
mov dword [ebp - 0x38], eax
mov edi, eax
lea esi, [ebp - 0x24]
push esi
push ebx
call sub.user32.dll_GetWindowRect
mov eax, dword [esi]
sub dword [ebp - 0x1c], eax
cmp word [ebp - 0x2c], 0x4b0
je 0x454571
mov esi, sub.gdi32.dll_SelectObject
push 0
push 3
cmp byte [ebp - 0xc], 0x7e
jne 0x45444a
sub dword [esp], 2
push 0
call sub.gdi32.dll_CreatePen
push eax
push edi
call esi
push eax
cmp dword [ebp - 0x2c], 1
je 0x454462
cmp byte [ebp - 0x31], 0
jne 0x454475
push 5
cmp byte [ebp - 0xc], 0x7e
jne 0x45446e
add dword [esp], 0xfffffffc
call sub.gdi32.dll_GetStockObject
jmp 0x45447f
push 0x606060
call sub.gdi32.dll_CreateSolidBrush
push eax
push edi
call esi
push eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
cmp byte [ebp - 0xc], 0x7e
jne 0x45449a
push eax
push dword [ebp - 0x1c]
push 0
push 0
jmp 0x4544a5
dec eax
push eax
mov eax, dword [ebp - 0x1c]
dec eax
push eax
push 0
push 1
push edi
call sub.gdi32.dll_Rectangle
push edi
call esi
push eax
call sub.gdi32.dll_DeleteObject
push edi
call esi
push eax
call sub.gdi32.dll_DeleteObject
cmp byte [ebp - 0xc], 0x7e
je 0x45459a
push 0x1e
pop eax
cmp dword [ebp - 0x2c], 1
jne 0x4544d2
mov al, 0xa4
mov dword [ebp - 0x18], eax
push ebp
xor eax, eax
call fcn.004533e8
mov esi, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], 1
jne 0x454502
mov dword [esi + 0xc], 0xc0c0c0
push 3
push 0x1d
mov eax, dword [ebp - 0x1c]
sub eax, 4
push eax
push 0xa3
call fcn.00453294
xor edi, edi
inc edi
imul eax, edi, 0x60606
mov dword [esi + 0xc], eax
push 0
lea eax, [edi - 0x14]
neg eax
push eax
push dword [ebp - 0x1c]
call fcn.00453304
cmp edi, 0x14
jb 0x454504
mov dword [esi + 8], 0xffffff
push 0xc7
push dword [ebp - 0x14]
push ebx
call sub.user32.dll_GetWindowTextW
movzx eax, byte [0x4d4a1b]
imul edx, eax, 0xfffffffd
add edx, 0xa
mov eax, 0x100002d
call fcn.004536e0
mov dword [esi + 0xc], 0x808080
push 8
push 3
push 0x1e
push 0x19
call fcn.00453344
xor eax, eax
mov edx, 0x4ce716
call fcn.00453dfc
jmp 0x45458f
mov eax, dword [ebp - 0x20]
sub dword [ebp - 0x18], eax
push ebp
mov eax, 0xffffff
call fcn.004533e8
mov eax, dword [ebp - 0x30]
xor edx, edx
mov dword [eax + 8], edx
call fcn.00430f00
call fcn.0045349c
call fcn.004534a4
pop ecx
call sub.user32.dll_EndPaint
popal
jmp 0x459c91
cmp byte [0x4d4a19], 0
jne 0x454617
cmp dword [0x668abb], 0
je 0x454617
push dword [0x672025]
call sub.user32.dll_IsWindowVisible
or eax, eax
jne 0x454617
push dword [0x672089]
call sub.user32.dll_IsWindowVisible
or eax, eax
jne 0x454617
push dword [0x6724a3]
call sub.user32.dll_IsWindowVisible
or eax, eax
jne 0x454617
pushal
xor ebx, ebx
movzx edi, word [ebx*2 + 0x45461d]
imul esi, edi, 0x32
add esi, 0x668304
push dword [esi - 0x19]
call sub.user32.dll_IsWindowVisible
or eax, eax
je 0x454610
push dword [esi - 0x19]
call sub.user32.dll_IsWindowEnabled
or eax, eax
jne 0x454625
inc ebx
cmp ebx, 4
jb 0x4545e7
popal
nop
jmp case.0x454394.517
movsx eax, word [ebp + 0x12]
cdq
push 0x1e
pop ecx
idiv ecx
or eax, eax
je 0x45465d
js 0x454640
cdq
cmp dword [esi], edx
je 0x45465d
sub dword [esi], eax
js 0x45464d
jmp 0x45464f
mov edx, dword [esi - 0x13]
cmp dword [esi], edx
jae 0x45465d
sub dword [esi], eax
cmp dword [esi], edx
jbe 0x45464f
mov dword [esi], edx
mov eax, edi
call fcn.00431270
mov eax, edi
call fcn.0043051c
popal
jmp 0x459c91
cmp dword [ebp - 0x2c], 1
je case.0x454394.517
jmp 0x459c91
movzx eax, word [0x4d4a0b]
test ax, ax
je 0x4546ab
movzx edx, ax
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
mov byte [edx*2 + 0x66830e], 0
call fcn.00431270
mov word [0x4d4a0b], 0
test byte [0x4d4a0d], 4
jbe 0x4546ab
call sub.user32.dll_ReleaseCapture
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x34
jne case.0x454394.517
call sub.user32.dll_ReleaseCapture
jmp 0x459c91
mov eax, 0x4d4a0b
movzx ecx, word [eax]
or ecx, ecx
je 0x4546db
cmp ecx, dword [ebp - 0x2c]
jne 0x45475a
test byte [eax + 2], 4
nop
je 0x45475a
pushal
mov esi, eax
call sub.user32.dll_GetCapture
cmp eax, dword [ebp + 8]
jne 0x454759
lea eax, [ebp - 0xc]
push eax
push eax
call sub.user32.dll_GetCursorPos
push dword [ebp + 8]
call sub.user32.dll_ScreenToClient
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x4b
je 0x45470c
mov ebx, dword [ebp - 0xc]
mov edi, eax
lea edx, [ebp - 0xc]
call fcn.00451240
mov ecx, dword [ebp - 4]
sub ecx, 0x18
cmp ecx, dword [edi + 0x12]
jbe 0x454724
mov ecx, dword [edi + 0x12]
movsx eax, word [esi + 8]
neg eax
add eax, ebx
imul dword [edi + 0x12]
idiv ecx
or eax, eax
je 0x454759
add eax, dword [esi + 4]
or eax, eax
jns 0x45473e
xor eax, eax
cmp eax, dword [edi + 0x12]
jbe 0x454746
mov eax, dword [edi + 0x12]
mov dword [edi + 0x25], eax
mov eax, dword [ebp - 0x2c]
call fcn.00431270
mov eax, dword [ebp - 0x2c]
call fcn.0043051c
popal
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x34
jne 0x4547a2
call sub.user32.dll_GetCapture
cmp eax, dword [ebp + 8]
jne 0x4547a2
push 1
call sub.user32.dll_GetKeyState
shr ax, 8
test ax, ax
jbe 0x45479d
call fcn.00453f80
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax + 0x2e]
mov edx, dword [ebp - 0x3c]
mov byte [edx + 0x30], al
movzx eax, word [ebp - 0x2c]
call fcn.00431270
jmp 0x459c91
call sub.user32.dll_ReleaseCapture
mov edx, dword [ebp - 0x3c]
mov eax, dword [0x2e8d8e4]
cmp byte [edx + 0x11], 0x34
je 0x4547bb
cmp byte [edx + 0x11], 0x35
je 0x4547bb
mov eax, dword [0x667e7e]
push eax
call sub.user32.dll_SetCursor
jmp case.0x454394.517
cmp dword [ebp - 0x2c], 1
je 0x4547e4
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x10]
cmp al, 0
je 0x4547de
cmp al, 6
je 0x4547de
cmp al, 5
jne 0x4547e4
nop
jmp case.0x454394.517
nop
jmp 0x459c91
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x10], 0
jne case.0x454394.517
mov eax, dword [ebp + 0x14]
push eax
push 0
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call sub.user32.dll_DefWindowProcW
movzx eax, word [ebp - 0x2c]
call fcn.00431270
jmp 0x459c91
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x10], 0
je 0x454827
nop
jmp case.0x454394.517
cmp byte [eax + 0x11], 0x7e
je 0x454821
mov eax, dword [ebp - 0x2c]
cmp ax, 0xc8
je 0x454854
movzx edx, byte [0x4d4a19]
cmp eax, dword [edx*4 + 0x676d74]
jne 0x454821
cmp eax, 1
jne 0x454854
cmp byte [0x4d4a1b], 0
jne 0x454821
lea eax, [ebp - 0x24]
push eax
push dword [ebp + 8]
call sub.user32.dll_GetWindowRect
push 2
pop eax
movsx edx, word [ebp + 0x16]
sub edx, dword [ebp - 0x20]
cmp edx, 0x1c
ja 0x45487b
movsx edx, word [ebp + 0x14]
sub edx, dword [ebp - 0x24]
cmp edx, 0x20
jae 0x4548a5
mov al, 1
cmp dword [ebp - 0x2c], 1
jne 0x4548a5
movsx edx, word [ebp + 0x14]
sub edx, dword [ebp - 0x1c]
cmp edx, 0xfffffff6
jle 0x454891
mov al, 0xb
movsx edx, word [ebp + 0x16]
sub edx, dword [ebp - 0x18]
cmp edx, 0xfffffff6
jle 0x4548a5
cmp al, 0xb
mov al, 0xf
jne 0x4548a5
mov al, 0x11
mov dword [ebp - 0x8c], eax
jmp 0x459c91
cmp dword [ebp - 0x2c], 1
jne 0x4548d2
mov ecx, 0x678609
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
sub eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4548d8
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 4]
cmp eax, dword [ecx + 4]
jne 0x4548d8
nop
jmp case.0x454394.517
call fcn.00430a34
jmp 0x459c91
mov eax, dword [ebp + 0x14]
call fcn.0043128c
or eax, eax
js case.0x454394.517
pushal
mov ebx, eax
imul edi, eax, 0x32
add edi, 0x6682ef
cmp byte [edi + 1], 1
jne 0x454916
mov eax, dword [ebp + 0x14]
call fcn.004312a8
call fcn.0043128c
call fcn.00431004
cmp byte [edi + 1], 0xd
jne 0x454925
mov dl, 2
mov eax, ebx
call fcn.004312c4
cmp word [ebp + 0x12], 1
jne 0x454a0a
mov esi, dword [0x4d4a04]
mov edx, 0x4549da
mov eax, dword [edx]
cmp al, byte [edi + 1]
jne 0x454968
sub bx, word [edx + 2]
movzx eax, ah
add ebx, dword [esi + eax]
mov eax, dword [edx + 4]
add eax, esi
mov eax, dword [eax + ebx*4]
or eax, eax
jl 0x4549d4
mov dword [esi + 0x20], eax
xor ebx, ebx
mov dword [esi + 0x34], ebx
mov edi, 0x2e8daf7
jmp dword [edx + 8]
add edx, 0xc
cmp edx, 0x454a0a
jb 0x45493b
jmp 0x454a0a
popal
jmp 0x459c91
mov eax, ebx
call fcn.0043130c
cmp byte [edi], 1
jne 0x454a1d
mov eax, ebx
mov ecx, dword [edi - 0x10]
jmp 0x454a5b
movzx esi, word [ebp + 0x12]
cmp byte [edi], 3
jne 0x454a3e
cmp esi, 1
jne 0x454a3e
xor ecx, ecx
mov edx, 0x147
mov eax, ebx
call fcn.00430e30
mov dword [edi + 0x15], eax
jmp 0x454a56
cmp byte [edi], 5
je 0x454a48
cmp byte [edi], 6
jne 0x454a5f
cmp esi, 1
je 0x454a56
cmp esi, 2
jne 0x454a5f
xor eax, eax
jmp 0x454a58
mov eax, ebx
mov ecx, dword [edi - 0xc]
jecxz 0x454a5f
call ecx
cmp bx, 0x144
jne 0x454a6b
call fcn.004531e8
call fcn.0045319c
dec al
js 0x454ac2
lea eax, [bx - 0x249]
cmp eax, 4
ja 0x454aab
mov ecx, 0x1000
push ecx
shl eax, 0xc
add eax, 0x2e91b44
push eax
mov eax, 0x2e8fb44
push eax
push ecx
push eax
push 0x2e90b44
call sub.kernel32.dll_RtlMoveMemory
call sub.kernel32.dll_RtlMoveMemory
mov eax, ebx
call fcn.0041ad70
mov dword [ebp - 0x28], ebx
call fcn.004531bc
or eax, eax
js 0x454ac2
call fcn.0042bbd4
popal
jmp 0x459c91
popal
jmp case.0x454394.517
mov edx, dword [ebp - 0x3c]
mov al, byte [edx + 0x11]
cmp al, 0x34
je 0x454add
cmp al, 0x35
jne 0x454afd
mov eax, edx
call fcn.00452084
mov byte [edx + 0x31], 1
cmp byte [edx + 0x11], 0x35
je 0x454af5
mov ecx, dword [edx + 0x2a]
jecxz 0x454af5
cmp byte [ecx], 0
je 0x454af5
mov byte [edx + 0x2e], 0x80
mov eax, dword [ebp - 0x2c]
call fcn.00431270
movzx eax, word [0x4d4a1e]
or eax, eax
je 0x454b31
cmp eax, dword [ebp - 0x2c]
je 0x454b31
imul edx, eax, 0x32
add edx, 0x66830d
and dword [edx], 0
cmp byte [edx + 0x11], 0x35
je 0x454b2c
mov ecx, dword [edx - 4]
jecxz 0x454b2c
cmp byte [ecx], 0
je 0x454b2c
mov byte [edx], 0x80
call fcn.00431270
nop
jmp case.0x454394.517
cmp dword [ebp + 0x10], 0x2e
jne 0x455042
pushal
lea ebx, [ebp - 0xc]
push ebx
call sub.user32.dll_GetCursorPos
push dword [ebx + 4]
push dword [ebx]
call sub.user32.dll_WindowFromPoint
mov dword [ebp + 0x14], eax
call fcn.0043128c
mov dword [ebp - 0x28], eax
call fcn.004531bc
or eax, eax
js 0x454f1b
mov ebx, eax
shl eax, 8
add eax, 0x678aa7
mov dword [ebp - 0x40], eax
mov ecx, eax
movzx edx, byte [eax]
mov eax, dword [ebp - 0x14]
mov dword [0x4f09b0], eax
mov esi, fcn.00430c44
mov edi, fcn.00430db8
cmp dl, 1
jne 0x454bb2
mov edx, ebx
and edx, 0xf
dec edx
dec edx
push edx
mov dx, 0x801d
cmp byte [ecx + 1], 0
je 0x454cbb
mov dx, 0x89ab
jmp 0x454bd7
cmp dl, 3
jb 0x454f1b
ja 0x454bdd
movzx edx, bx
and dh, 1
inc edx
push edx
mov dx, 0x81e9
cmp byte [ecx + 1], 0
je 0x454dda
mov dx, 0x89b3
nop
jmp 0x454de5
cmp dl, 5
ja 0x454c74
je 0x454c56
mov dx, 0x89be
cmp byte [ecx + 1], 0
je 0x454bf5
add edx, 0xfffffff9
call edi
mov ecx, ebx
shr ecx, 4
shl ch, 4
and cl, 0xf0
inc ch
cmp bl, 0x7f
jbe 0x454c0a
inc ecx
shl ecx, 8
add ecx, 0x678aac
mov edx, ebx
and edx, 0x7f
cmp byte [ecx], dh
pushfd
je 0x454c20
and edx, 0x3f
inc edx
call esi
mov dx, 0x9b8
call edi
mov edx, ebx
shr edx, 7
and edx, 0x1f
sub edx, 5
call esi
popfd
je 0x454c48
bt ebx, 6
setb dl
add dl, 0x61
call fcn.00430e24
mov ecx, dword [ebp - 0x40]
cmp byte [ecx + 1], 0
je 0x454cc0
jmp 0x454edf
mov dx, 0x89b5
call edi
movzx edx, bl
shr edx, 3
bt ebx, 0
adc edx, 0xfffffffb
call esi
mov dx, 0x9b6
jmp 0x454eca
cmp dl, 7
ja 0x454ce7
je 0x454caa
mov ecx, dword [ebp - 0x40]
mov edx, ebx
and edx, 0xf
push edx
mov dx, 0x89c3
cmp byte [ecx + 2], 0
jne 0x454c99
call edi
pop edx
call esi
mov dx, 0x9c4
jmp 0x454cc4
add edx, 0xfffffffd
call edi
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx + 2]
add dl, 0xaf
jmp 0x454cdc
mov edx, ebx
and edx, 0xf
inc edx
push edx
mov dx, 0x89c5
cmp byte [ecx + 2], 0
jne 0x454cca
call edi
pop edx
call esi
mov dx, 0x9bf
nop
jmp 0x454e9e
add edx, 0xfffffffb
call edi
mov ecx, dword [ebp - 0x40]
movzx edx, byte [ecx + 2]
mov dl, byte [edx + 0x4d47b6]
call edi
mov dx, 0x3cb
jmp 0x454bd7
cmp dl, 0xa
jb 0x454f1b
ja 0x454d05
mov dx, 0x89ac
call edi
mov edx, ebx
and edx, 0x7f
add edx, 0xffffffd5
jmp 0x454e07
cmp dl, 0xc
je 0x454d14
ja 0x454d33
mov dx, 0x89aa
mov cl, 0xb6
jmp 0x454d40
mov dx, 0x89a8
call edi
mov edx, ebx
and edx, 0x7f
sub edx, 0x22
call esi
mov edx, 0x3f005d
call fcn.00430e14
jmp 0x454ee6
cmp dl, 0xe
je 0x454d4e
ja 0x454d54
mov dx, 0x89a9
mov cl, 0xc8
call edi
mov edx, ebx
and edx, 0x7f
add dl, cl
jmp 0x454edd
mov dx, 0x89c1
jmp 0x454d7d
cmp dl, 0x10
je 0x454d79
ja 0x454daa
mov dx, 0x89a7
call edi
mov dx, 0x347
cmp bl, 0x21
je 0x454d72
mov edx, ebx
and edx, 0x7f
add edx, 0xd
call edi
jmp 0x454edf
mov dx, 0x89ae
call edi
mov edx, ebx
and edx, 7
inc edx
call esi
mov dx, 0x9c2
call edi
mov ecx, ebx
shr ecx, 4
push ecx
mov ch, bh
and ch, 0xf0
shl ecx, 8
add ecx, 0x688aa7
and dword [esp], 0xf
jmp 0x454ca1
cmp dl, 0x12
je 0x454dca
ja 0x454ded
mov dl, byte [0x4d4a1a]
imul edx, edx, 0x11
cmp byte [edx + 0x678945], 3
mov dx, 0x89cb
je 0x454e0d
dec edx
jmp 0x454e0d
mov edx, ebx
and edx, 0x7f
inc edx
push edx
cmp byte [ecx + 2], dh
jne 0x454de1
mov dx, 0x8320
call edi
pop edx
call esi
jmp 0x454e43
mov dx, 0x89b2
call edi
pop edx
jmp 0x454edd
cmp dl, 0x14
je 0x454e10
ja 0x454e24
mov dx, 0x89ae
call edi
mov edx, ebx
and edx, 0x7f
cmp bl, 0x32
jb 0x454e1b
add edx, 0xffffffcf
call esi
mov dx, 0x9ad
nop
jmp 0x454e4d
mov dx, 0x89b0
call edi
mov edx, ebx
and edx, 0xf
inc edx
call esi
mov dx, 0x9af
jmp 0x454e4d
cmp dl, 0x16
je 0x454e10
ja 0x454e31
mov dx, 0x89b1
jmp 0x454e14
cmp dl, 0x18
je 0x454e50
ja 0x454e67
cmp byte [ecx + 1], dh
jne 0x454e49
mov dx, 0x84a9
call edi
mov dx, 0x9b4
jmp 0x454e9e
mov dx, 0x89bb
nop
jmp 0x454eca
cmp byte [ecx + 1], dh
jne 0x454e61
mov dx, 0x84aa
call edi
mov dx, 0x9bd
jmp 0x454e9e
mov dx, 0x89bc
jmp 0x454eca
cmp dl, 0x1a
je 0x454e8f
ja 0x454ea8
cmp byte [ecx + 1], dh
jne 0x454e82
mov dx, 0x84b8
call edi
mov edx, ebx
and edx, 0xf
call esi
jmp 0x454e9a
mov dx, 0x89b9
call edi
mov edx, ebx
and edx, 0xf
jmp 0x454edd
cmp byte [ecx + 2], dh
jne 0x454ea2
mov dx, 0x84c6
call edi
mov dx, 0x9bd
call edi
jmp 0x454f09
mov dx, 0x89ba
jmp 0x454eca
cmp dl, 0x1c
je 0x454eb7
ja 0x454ebf
mov dx, 0x89c7
mov cl, 3
jmp 0x454ed4
mov dx, 0x89c6
mov cl, 0xff
jmp 0x454ed4
cmp dl, 0x1e
je 0x454ece
ja 0x454f1b
mov dx, 0x89c8
call edi
jmp 0x454ee6
mov dx, 0x89c9
mov cl, 0xb
call edi
mov edx, ebx
and edx, 0xf
sub dl, cl
call esi
mov dl, 0x3f
call fcn.00430e24
test byte [ebp - 0x44], 2
jne 0x454efc
mov eax, 0x809601f8
mov dl, 0x1e
call fcn.0041a0ac
cmp al, 1
jne 0x454f1b
mov eax, ebx
bts eax, 0x10
call fcn.0042bbd4
jmp 0x454f1b
test byte [ebp - 0x44], 2
jne 0x454f1b
mov eax, 0x868b01f8
mov dl, 0x31
call fcn.0041a0ac
popal
mov eax, dword [ebp - 0x14]
mov dword [0x4f09b0], eax
pushal
mov esi, dword [ebp - 0x28]
imul eax, esi, 0x32
mov al, byte [eax + 0x6682f0]
mov ebx, dword [0x4d4a04]
mov edx, 0x454fde
cmp al, byte [edx]
jne 0x454fcd
sub si, word [edx + 2]
movzx ecx, byte [edx + 1]
add esi, dword [ebx + ecx]
lea ecx, [ebx + esi*4]
add ecx, dword [edx + 4]
mov edi, dword [ecx]
or edi, edi
js 0x454fc7
push edx
mov edx, dword [edx + 0xc]
cmp al, 0x5a
jne 0x454f71
mov al, byte [0x2e8d8ea]
cmp al, 0xc
je 0x454f70
cmp al, 0xf
jne 0x454f71
inc edx
mov eax, dword [ebp - 0x14]
call fcn.00430db8
lea edx, [esi + 1]
call fcn.00430c44
mov dl, 0x3f
call fcn.00430e24
mov eax, 0x9e01f8
mov dl, 0x1e
call fcn.0041a0ac
dec al
js 0x454fc7
pop edx
mov ebp, dword [edx + 0xe]
mov eax, dword [edx + 0x12]
mov esi, dword [edx + 8]
add esi, ebx
movzx edx, ah
add ebx, edx
mov edx, esi
and eax, 0x7f
mov ecx, dword [ebx]
sub ecx, edi
dec ecx
jle 0x454fc3
imul ecx, eax
imul edi, eax
lea edi, [edi + edx]
lea esi, [edi + eax]
rep movsb byte es:[edi], byte [esi]
dec dword [ebx]
call ebp
popal
jmp 0x459c91
add edx, 0x14
cmp edx, 0x455042
jb 0x454f3c
jmp 0x455042
cmp dword [ebp + 0x10], 0xd
jne 0x455061
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x10], 3
jne 0x455061
push dword [eax + 0x3e]
call sub.user32.dll_IsWindowVisible
or eax, eax
je 0x45564d
cmp dword [ebp + 0x10], 0x1b
jne 0x4550a8
cmp byte [0x4d4a19], 0
jbe 0x4550a8
call sub.user32.dll_GetActiveWindow
cmp eax, dword [0x66a9fb]
je 0x4550a8
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x10], 3
jne 0x4555f9
mov eax, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
mov eax, dword [eax*2 + 0x66831d]
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x4555f9
push 0xc
pop eax
cmp ah, byte [0x4d4a19]
jne 0x455108
cmp byte [0x4d4a0a], 0
je 0x455108
cmp dword [ebp + 0x10], 0x7a
jne 0x4550c7
call fcn.00452cf8
cmp dword [ebp + 0x10], 0x72
je 0x4550de
cmp dword [ebp + 0x10], 0x71
jne 0x4550e3
mov ax, 0x2c2
test byte [ebp - 0x44], 2
je 0x4550de
inc eax
call fcn.0041c320
cmp dword [ebp + 0x10], 0x70
jne 0x4550ee
call fcn.00450bd4
cmp dword [ebp + 0x10], 0x74
jne 0x455108
mov edx, 0x40dc50
test byte [ebp - 0x44], 2
je 0x455104
mov edx, 0x40da2c
call edx
jmp 0x45512e
cmp dword [ebp + 0x10], 0x70
jne 0x45512e
movzx eax, byte [0x4d4a19]
mov ax, word [eax*4 + 0x676db4]
or eax, eax
je 0x45512e
imul eax, eax, 0x32
mov ecx, dword [eax + 0x6682df]
jecxz 0x45512e
call ecx
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x34
jne 0x4553f6
pushal
cmp byte [ebp - 0x44], 1
jne 0x4551fb
cmp dword [ebp + 0x10], 0x43
je 0x45515c
cmp dword [ebp + 0x10], 0x63
je 0x45515c
cmp dword [ebp + 0x10], 0x2d
jne 0x4551fb
mov edi, dword [ebp - 0x3c]
mov ebx, dword [edi + 0x2f]
cmp bl, bh
jb 0x455168
xchg bh, bl
je 0x4551d5
push 0x200
push 0x2042
call sub.kernel32.dll_GlobalAlloc
mov esi, eax
push eax
call sub.kernel32.dll_GlobalLock
mov dword [ebp + 0x14], eax
mov edi, dword [edi + 0x2a]
inc edi
cmp bl, 0x7f
jae 0x4551b6
cmp bh, 0x7f
jae 0x45519f
cmp bl, bh
jae 0x4551b6
xor eax, eax
call fcn.004551db
jmp 0x455192
cmp bl, byte [edi]
jae 0x4551ac
xor eax, eax
call fcn.004551db
jmp 0x45519f
mov bl, 0x7f
push 0xd
pop edx
call fcn.004551f1
cmp bl, 0x7f
jbe 0x4551c9
cmp bl, bh
jae 0x4551c9
push 0x54
pop eax
call fcn.004551db
jmp 0x4551bb
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov eax, esi
call fcn.00430e84
popal
jmp 0x459c91
popal
cmp dword [ebp + 0x10], 0x56
je 0x455208
cmp dword [ebp + 0x10], 0x76
jne 0x45520e
cmp byte [ebp - 0x44], 1
je 0x455222
cmp dword [ebp + 0x10], 0x2d
jne 0x4552dc
cmp byte [ebp - 0x44], 2
jne 0x4552dc
mov eax, dword [ebp + 8]
push eax
call sub.user32.dll_OpenClipboard
test eax, eax
je 0x459c91
push 0xd
call sub.user32.dll_GetClipboardData
or eax, eax
je 0x4552cd
pushal
mov byte [0x4d4a1d], 5
mov eax, eax
push eax
call sub.kernel32.dll_GlobalLock
or eax, eax
je 0x4552c5
mov esi, eax
movzx eax, word [esi]
or eax, eax
je 0x4552bf
mov edi, dword [ebp - 0x14]
and dword [edi], 0
cmp eax, 0xd
jne 0x45527c
mov edx, dword [ebp - 0x3c]
cmp byte [edx + 0x2e], 0x7f
jbe 0x45529b
or byte [0x4d4a1d], 2
jmp 0x4552bb
test byte [0x4d4a1d], 2
jne 0x4552bb
mov edx, edi
push eax
call fcn.0041cd38
pop eax
cmp byte [edi + 1], 0
je 0x45529b
movzx eax, byte [edi]
or eax, eax
je 0x4552bb
push 0
push eax
push 0x102
push dword [ebp + 8]
call fcn.004541e0
cmp word [esi], 0xd
jne 0x4552b8
mov byte [0x4d4a1d], 5
inc edi
jmp 0x455294
lodsw ax, word [esi]
jmp 0x455258
push ebx
call sub.kernel32.dll_GlobalUnlock
mov byte [0x4d4a1d], 0
popal
call sub.user32.dll_CloseClipboard
call fcn.00454008
jmp 0x459c91
pushal
mov esi, dword [ebp - 0x3c]
mov ecx, dword [esi + 0x2a]
add esi, 0x2e
mov edx, dword [esi]
mov dh, dl
and dh, 0x80
mov ebx, edx
and ebx, 0x7f
movzx eax, dl
shr eax, 7
imul eax, eax, 0x54
lea edi, [eax + ecx + 1]
mov eax, dword [ebp + 0x10]
cmp eax, 0x2e
jne 0x455320
call fcn.004534bc
or al, al
jne 0x45531a
lea edx, [ebx + 1]
mov eax, edi
call fcn.00431348
mov byte [ebp - 0x44], 0
jmp 0x45538b
cmp eax, 0x25
jne 0x45535f
cmp dl, 0x80
jne 0x455336
cmp byte [ecx], 0
jne 0x45539d
mov al, byte [ecx + 1]
mov byte [esi], al
jmp 0x45538b
test byte [ebp - 0x44], 1
je 0x455357
cmp ebx, 1
jbe 0x4553e8
dec byte [esi]
dec ebx
cmp byte [edi + ebx + 1], 0x20
je 0x45533c
cmp byte [edi + ebx], 0x20
jne 0x45533c
jmp 0x45538b
or ebx, ebx
je 0x4553cf
dec byte [esi]
jmp 0x45538b
cmp eax, 0x27
jne 0x455396
or dh, dh
jne 0x455371
cmp dl, byte [edi]
jb 0x455371
mov byte [esi], 0x80
jmp 0x4553ea
test byte [ebp - 0x44], 1
je 0x45538e
cmp bl, byte [edi]
jae 0x4553e6
inc byte [esi]
inc ebx
cmp byte [edi + ebx + 1], 0x20
jne 0x455377
cmp byte [edi + ebx], 0x20
je 0x455377
nop
jmp 0x4553ea
cmp bl, byte [edi]
jae 0x4553ef
inc byte [esi]
jmp 0x4553ea
cmp eax, 0x28
jne 0x4553a7
or dh, dh
nop
jne 0x4553ef
push 0x1e0003
jmp 0x4553b2
cmp eax, 0x26
jne 0x4553d2
or dh, dh
je 0x4553ef
push 3
pop esi
mov edx, ebx
lea eax, [edi + 1]
call fcn.0045a288
add eax, esi
push eax
push 0xffffffffffffffff
push 0x201
push dword [ebp + 8]
call sub.user32.dll_SendMessageW
nop
jmp 0x4553ef
cmp eax, 0x24
jne 0x4553dd
or ebx, ebx
jne 0x4553e8
jmp 0x4553ef
cmp eax, 0x23
jne 0x4553f5
cmp bl, byte [edi]
jae 0x4553ef
add dh, byte [edi]
mov byte [esi], dh
call fcn.00454008
popal
jmp 0x459c91
popal
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x35
jne 0x4554f5
pushal
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp + 0x10]
mov dl, byte [ebp - 0x44]
test dl, 1
je 0x455478
cmp eax, 0x43
je 0x455421
cmp eax, 0x63
je 0x455421
cmp eax, 0x2d
jne 0x455473
mov ebx, dword [esi + 0x2f]
cmp bl, bh
je 0x455470
jb 0x45542c
xchg bh, bl
cmp dword [ebp - 0x2c], 0x3bd
je 0x455478
push 0x200
push 0x2042
call sub.kernel32.dll_GlobalAlloc
mov edi, eax
push eax
call sub.kernel32.dll_GlobalLock
mov esi, eax
movzx edx, bl
movzx ebx, bh
sub ebx, edx
add ebx, ebx
push ebx
lea edx, [edx*2 + 0x2e90344]
push edx
push eax
call sub.kernel32.dll_RtlMoveMemory
mov edx, dword [esi]
mov eax, edi
call fcn.00430e84
nop
jmp 0x4554ee
cmp eax, 0x56
je 0x455482
cmp eax, 0x2d
jne 0x4554f4
test dl, 2
je 0x4554f4
push dword [ebp + 8]
call sub.user32.dll_OpenClipboard
or eax, eax
je 0x4554e9
push 0xd
call sub.user32.dll_GetClipboardData
push eax
push eax
call sub.kernel32.dll_GlobalLock
or eax, eax
mov edi, eax
je 0x4554e4
mov eax, esi
call fcn.00452084
cmp word [edi], 0
je 0x4554e4
cmp word [edi], 0x20
jb 0x4554e0
movzx ebx, byte [esi + 0x17]
or ebx, ebx
jne 0x4554bf
mov bl, 0x64
mov eax, 0x2e90344
call fcn.00430a24
cmp eax, ebx
jae 0x4554e4
push 0
movzx eax, word [edi]
push eax
push 0x102
push dword [ebp + 8]
call fcn.004541e0
inc edi
inc edi
jmp 0x4554a9
call sub.kernel32.dll_GlobalUnlock
call sub.user32.dll_CloseClipboard
popal
jmp 0x459c91
popal
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x35
jne case.0x454394.517
push eax
call fcn.00452084
pop eax
pushal
lea esi, [eax + 0x2e]
mov eax, 0x2e90344
mov edi, eax
call fcn.00430a24
mov ebx, eax
movzx edx, byte [esi]
mov eax, dword [ebp + 0x10]
cmp eax, 0x23
jne 0x45552c
cmp dl, bl
jb 0x45555c
jmp 0x455562
cmp eax, 0x24
jne 0x45553a
dec dl
js 0x4555b3
mov byte [esi], 0
jmp 0x455567
push 0x20
pop ecx
cmp eax, 0x27
jne 0x45556a
test byte [ebp - 0x44], 1
je 0x455560
cmp edx, ebx
jae 0x45555c
inc edx
cmp word [edi + edx*2], cx
jne 0x455548
cmp word [edi + edx*2 - 2], cx
je 0x455548
jmp 0x455590
mov byte [esi], bl
jmp 0x4555cc
cmp dl, bl
nop
jae 0x4555d1
inc byte [esi]
nop
jmp 0x4555cc
cmp eax, 0x25
jne 0x455594
test byte [ebp - 0x44], 1
je 0x45558d
or edx, edx
je 0x45558b
dec edx
je 0x45558b
cmp word [edi + edx*2], cx
je 0x455575
cmp word [edi + edx*2 - 2], cx
jne 0x455575
jmp 0x455590
mov dl, 1
dec edx
js 0x4555d1
mov byte [esi], dl
jmp 0x4555cc
cmp dword [ebp + 0x10], 0x2e
jne 0x4555d1
call fcn.0045354c
dec al
js 0x4555b6
mov eax, dword [ebp - 0x3c]
call fcn.00452054
mov eax, dword [ebp - 0x2c]
call fcn.00431270
nop
jmp 0x4555d1
lodsb al, byte [esi]
cmp al, bl
jae 0x4555d1
call fcn.00431368
mov byte [ebp - 0x44], 0
mov eax, dword [ebp - 0x3c]
call fcn.00452054
call fcn.00454008
popal
jmp 0x459c91
cmp dword [ebp + 0x10], 0xd
je 0x45564d
cmp dword [ebp + 0x10], 0x73
jne case.0x454394.517
call sub.user32.dll_GetActiveWindow
cmp eax, dword [0x66a9fb]
mov eax, 0xc8
je 0x455615
movzx eax, byte [0x4d4a19]
or eax, eax
jne 0x45560e
add eax, 2
mov edx, 0x431220
jmp 0x45562b
mov eax, dword [eax*4 + 0x676d74]
mov edx, fcn.00431004
cmp eax, 0x20b
jne 0x45562b
mov ecx, dword [0x66e937]
jecxz 0x45562b
mov edx, ecx
call edx
jmp 0x459c91
cmp dword [ebp + 0x10], 0xd
jne 0x455686
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x10], 0xff
je 0x455686
cmp byte [eax + 0x10], 3
je 0x455686
cmp byte [eax + 0x11], 0x34
je 0x455686
call sub.user32.dll_GetActiveWindow
cmp eax, dword [0x66a9fb]
je 0x455686
movzx ecx, byte [0x4d4a19]
jecxz 0x455686
imul ecx, dword [ecx*4 + 0x676d94], 0x32
jecxz 0x455686
mov eax, ecx
mov ecx, dword [ecx + 0x6682df]
jecxz 0x455686
push ecx
push dword [eax + 0x6682eb]
call sub.user32.dll_SetFocus
pop eax
call eax
cmp dword [ebp + 0x10], 9
jne 0x455695
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x1d], 0
jne 0x45569b
nop
jmp 0x45573a
pushal
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 4], eax
mov esi, 0x4b1
xor ebx, ebx
mov edi, 0x6682fc
inc ebx
add edi, 0x32
cmp dword [edi], 0
je 0x455715
mov eax, ebx
call fcn.0045a068
push eax
mov eax, dword [ebp - 0x2c]
call fcn.0045a068
pop edx
cmp eax, edx
jne 0x455715
push dword [edi - 0x11]
call sub.user32.dll_IsWindowEnabled
or eax, eax
je 0x455715
push dword [edi - 0x11]
call sub.user32.dll_IsWindowVisible
or eax, eax
je 0x455715
imul eax, dword [ebp - 4], 0x32
mov eax, dword [eax + 0x6682fc]
cmp eax, dword [edi]
jbe 0x4556f5
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x1d]
cmp eax, dword [edi]
jae 0x455715
cmp si, 0x4b0
ja 0x455713
imul eax, esi, 0x32
mov eax, dword [eax + 0x6682fc]
cmp eax, dword [edi]
jbe 0x455715
mov esi, ebx
cmp bx, 0x4b0
jb 0x4556ae
cmp si, 0x4b0
jbe 0x455726
mov esi, dword [ebp - 4]
cmp esi, dword [ebp - 0x2c]
je 0x455739
imul eax, esi, 0x32
push dword [eax + 0x6682eb]
call sub.user32.dll_SetFocus
popal
cmp dword [ebp - 0x2c], 0x214
jne 0x455787
cmp dword [ebp + 0x10], 8
je 0x455787
mov eax, 0x2e90344
push eax
call fcn.00430a24
cmp eax, 3
ja 0x455783
mov eax, dword [ebp + 0x10]
pop ecx
cmp dword [ecx], 0x350032
jne 0x455779
cmp dword [ecx + 4], 0x36
jne 0x455779
cmp eax, 0x24
jne 0x455779
mov edx, dword [ebp - 0x3c]
cmp byte [edx + 0x2e], 2
je 0x455787
cmp eax, 0x30
jb 0x455783
cmp eax, 0x39
jbe 0x455787
and dword [ebp + 0x10], 0
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x34
jne 0x4557e1
cmp dword [ebp + 0x10], 0xd
jne 0x4557e1
pushal
lea esi, [eax + 0x2e]
movzx ebx, byte [esi]
cmp ebx, 0x7f
jbe 0x4557a9
call fcn.00430a0c
jmp 0x4557db
mov edi, dword [eax + 0x2a]
inc edi
call fcn.004534bc
push 0x7f
lea eax, [edi + ebx + 1]
push eax
lea eax, [edi + 0x55]
push eax
call sub.kernel32.dll_RtlMoveMemory
movzx eax, byte [edi]
sub eax, ebx
mov byte [edi + 0x54], al
mov byte [edi], bl
mov byte [edi + ebx + 1], bh
mov byte [esi], 0x80
mov byte [ebp - 0x44], bh
call fcn.00454008
popal
jmp 0x459c91
cmp word [ebp - 0x2c], 0x1a4
jne 0x4557f6
mov word [ebp - 0x2c], 0x37
mov dword [ebp - 0x3c], 0x668d9d
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x34
jne 0x4558d7
pushal
push ebp
lea esi, [eax + 0x2e]
mov eax, dword [esi - 3]
shr eax, 0x1f
imul edi, eax, 0x54
add edi, 1
add edi, dword [esi - 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x20
jb 0x4558a3
mov eax, ebx
mov ebx, dword [ebp - 0x14]
mov byte [ebx], 0
mov edx, ebx
call fcn.0041cd38
movzx ebx, byte [ebx]
call fcn.004534bc
or ebx, ebx
je 0x45588f
and byte [0x4d4a1d], 7
inc byte [esi]
mov eax, edi
mov edx, ebx
mov ecx, dword [esi]
and ecx, 0x7f
call fcn.00450bac
mov eax, edi
call fcn.0045a2b8
cmp ax, 0x13f
jbe 0x455874
or byte [0x4d4a1d], 0x80
movzx eax, byte [edi]
mov byte [edi + eax], 0
dec byte [edi]
jmp 0x455855
mov eax, dword [esi]
and eax, 0x7f
movzx edx, byte [edi]
cmp eax, edx
jbe 0x455885
and byte [esi], 0x80
add byte [esi], dl
btr dword [0x4d4a1d], 7
jae 0x45589d
test byte [0x4d4a1d], 1
jne 0x45589d
call fcn.00430a0c
mov byte [ebp - 0x44], 0
jmp 0x4558cb
cmp ebx, 8
jne 0x4558d0
call fcn.004534bc
or al, al
je 0x4558bb
mov eax, dword [ebp - 0x2c]
call fcn.00431270
jmp 0x4558d0
mov edx, dword [esi]
and edx, 0x7f
je 0x4558d0
mov eax, edi
call fcn.00431348
dec byte [esi]
call fcn.00454008
pop eax
popal
jmp 0x459c91
cmp byte [eax + 0x11], 0x35
jne case.0x454394.517
push eax
call fcn.00452084
pop eax
pushal
push ebp
lea edi, [eax + 0x2e]
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x20
jb 0x455a96
call fcn.0045354c
mov eax, 0x2e90344
call fcn.00430a24
cmp byte [0x2e8d8ea], 0x1d
jne 0x455938
mov dl, byte [edi - 0x17]
cmp dl, 5
jbe 0x455938
cmp al, dl
jae 0x455a2f
cmp ebx, 0x20
jbe 0x455a2f
cmp ebx, 0x7f
ja 0x455a2f
jmp 0x455a3e
cmp dword [ebp - 0x2c], 0x5b
je 0x455944
cmp dword [ebp - 0x2c], 0x64
jne 0x45594f
cmp eax, 8
jae 0x455a2f
jmp 0x455973
cmp dword [ebp - 0x2c], 0x3b9
je 0x45596a
cmp dword [ebp - 0x2c], 0x395
je 0x45596a
cmp dword [ebp - 0x2c], 0x388
jne 0x4559b8
cmp eax, 5
jae 0x455a2f
cmp ebx, 0x30
jb 0x455a2f
cmp ebx, 0x39
ja 0x455a2f
cmp byte [edi - 0x17], 5
jne 0x4559b8
xor eax, eax
cdq
mov esi, 0x2e90344
cmp dl, byte [edi]
jne 0x45599e
lea eax, [eax + eax*4]
lea eax, [ebx + eax*2 - 0x30]
movzx ecx, byte [esi + edx*2]
jecxz 0x4559ae
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
inc edx
jmp 0x455993
shr eax, 0x10
jne 0x455a2f
jmp 0x455a6b
cmp byte [edi - 0x17], 3
jne 0x4559c6
cmp eax, 3
jae 0x455a2f
inc eax
jmp 0x455a03
cmp dword [ebp - 0x2c], 0x35a
jne 0x455a1b
cmp byte [0x2e8d8ea], 0x1e
jne 0x4559f3
cmp eax, 0x23
jae 0x455a2f
cmp ebx, 0x7d
ja 0x455a2f
cmp ebx, 0x21
jbe 0x455a2f
cmp bl, 0x26
ja 0x455a1b
cmp ebx, 0x23
ja 0x455a2f
jmp 0x455a1b
cmp eax, 0xf
jae 0x455a2f
mov eax, dword [edi]
cmp ebx, 0x2b
jne 0x455a03
or al, al
je 0x455a11
cmp ebx, 0x30
jb 0x455a2f
cmp ebx, 0x39
ja 0x455a2f
or al, al
jne 0x455a3e
cmp word [0x2e90344], 0x2b
je 0x455a2f
push 5
pop ecx
movzx eax, byte [ecx + 0x455a38]
cmp eax, ebx
je 0x455a2f
loop 0x455a1e
or ebx, ebx
jne 0x455a3e
call fcn.00430a0c
jmp 0x455ac1
mov esi, 0x2e90344
cmp byte [edi - 0x17], 3
jne 0x455a6b
xor eax, eax
cdq
cmp dl, byte [edi]
jne 0x455a57
lea eax, [eax + eax*4]
lea eax, [ebx + eax*2 - 0x30]
movzx ecx, byte [esi + edx*2]
jecxz 0x455a67
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
inc edx
jmp 0x455a4c
or ah, ah
jne 0x455a2f
mov eax, esi
call fcn.00430a24
movzx edx, byte [edi]
sub eax, edx
jl 0x455a96
lea eax, [eax + eax + 2]
push eax
lea esi, [esi + edx*2]
push esi
inc esi
inc esi
push esi
call sub.kernel32.dll_RtlMoveMemory
mov word [esi - 2], bx
inc byte [edi]
mov byte [ebp - 0x44], 0
jmp 0x455abc
cmp ebx, 8
jne 0x455ac1
call fcn.0045354c
or al, al
je 0x455aae
mov eax, dword [ebp - 0x2c]
call fcn.00431270
jmp 0x455ac1
cmp byte [edi], bh
je 0x455ac1
dec byte [edi]
movzx eax, byte [edi]
call fcn.00431368
call fcn.00454008
pop eax
popal
mov eax, dword [ebp - 0x3c]
call fcn.00452054
jmp 0x459c91
mov eax, dword [ebp + 8]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
call fcn.004531bc
mov dword [ebp - 0x28], eax
mov ecx, 0x455b47
cmp byte [ebp - 0x44], 0
je 0x455af8
add ecx, 9
cmp byte [ebp - 0x44], 4
jne 0x455b59
mov eax, dword [ebp - 0x28]
shl eax, 8
jb 0x455b59
add eax, 0x678aa7
movzx edx, byte [eax]
cmp edx, 0x1f
ja 0x455b59
bt dword [ecx], edx
jb 0x455b2d
bt dword [ecx + 4], edx
jae 0x455b1e
test byte [eax + 1], 1
jne 0x455b2d
cmp edx, 0x13
jb 0x455b59
cmp edx, 0x16
ja 0x455b59
cmp dh, byte [eax + 0x18]
jne 0x455b59
pushal
call fcn.00430928
popal
mov ecx, dword [ecx + 8]
xor byte [eax + 1], cl
push 6
pop eax
call fcn.00431270
jmp 0x459c91
cmp byte [ebp - 0x44], 2
jne 0x455ba2
cmp dword [ebp - 0x28], 0xffffffff
je 0x455b98
cmp byte [0x2e78938], 0
je 0x455b98
mov eax, dword [ebp - 0x28]
push eax
call fcn.0045134c
test al, al
je 0x455b98
call fcn.0041d46c
call fcn.0042427c
call fcn.0042409c
mov ax, 6
call fcn.00431270
jmp 0x459c91
call fcn.00430a0c
jmp 0x459c91
cmp dword [ebp - 0x28], 0xffffffff
je 0x456018
movzx eax, byte [0x4d4a1a]
mov edx, eax
shl eax, 4
add eax, edx
add eax, 0x678935
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
shl eax, 5
movzx eax, byte [eax*8 + 0x678aa7]
mov dword [ebp - 4], eax
cmp eax, 0x11
jne 0x455e52
mov eax, 0x32
call fcn.00431004
mov cx, 0x6ac
mov edx, 0xbe0203
mov eax, 0x320001
call fcn.00459df8
mov byte [ebp - 0x43], 0
mov dword [ebp + 0x10], 0x6ad0897
movzx eax, byte [0x4d4a1a]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0x678945], 1
jne 0x455c22
mov dword [ebp + 0x10], 0x6ae0898
push 0x7d0032
push 0x320014
mov eax, dword [ebp + 0x10]
push eax
push 0xd
call fcn.0045a1d4
mov dword [ebp + 0x10], 0x89a3904
movzx eax, byte [0x4d4a1a]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0x678945], 3
jne 0x455c6a
xor edx, edx
mov ax, 0x7d
call fcn.004309cc
inc byte [ebp - 0x43]
mov dword [ebp + 0x10], 0x89b3904
movzx eax, byte [0x4d4a1a]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0x678945], 1
jne 0x455cbe
mov dword [ebp + 0x14], 9
movzx eax, byte [0x4d4a1a]
mov edx, eax
shl eax, 4
add eax, edx
add eax, 0x678934
mov edx, dword [ebp + 0x14]
cmp byte [eax + edx + 1], 0
je 0x455cb5
xor edx, edx
mov ax, 0x7d
call fcn.004309cc
inc byte [ebp - 0x43]
jmp 0x455cbe
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 0x10
jne 0x455c88
cmp byte [ebp - 0x43], 0
jne 0x455ccf
mov dl, 1
mov ax, 0x7d
call fcn.004312c4
push 0x7e0032
push 0x55000a
push 0x5a01f4
mov eax, dword [ebp + 0x10]
push eax
call fcn.00459cbc
mov dword [0x669bc6], 0x89c
add byte [ebp - 0x43], 2
xor eax, eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
add eax, 0x80
shl eax, 0x10
add eax, 0x7e
push eax
mov eax, dword [ebp + 0x14]
and eax, 0x80000007
jns 0x455d18
dec eax
or eax, 0xfffffff8
inc eax
imul eax, eax, 0x3c
add eax, 0xa
mov edx, dword [ebp + 0x14]
test edx, edx
jns 0x455d28
add edx, 7
sar edx, 3
imul edx, edx, 0x1e
add edx, 0x19
shl edx, 0x10
add eax, edx
push eax
push 0x40899
cmp dword [ebp + 0x14], 0xf
sete al
add al, 0xb
cmp dword [ebp + 0x14], 0
sete dl
sub al, dl
push eax
call fcn.0045a1d4
mov ebx, dword [ebp - 0x14]
mov word [ebx], 0
mov edx, dword [ebp + 0x14]
inc edx
mov eax, ebx
call fcn.00430c44
push eax
mov eax, dword [ebp + 0x14]
add eax, 0x80
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
mov eax, dword [eax*2 + 0x6682eb]
push eax
call sub.user32.dll_SetWindowTextW
movzx eax, word [ebp + 0x14]
add ax, 0x80
xor edx, edx
call fcn.004309cc
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 0x10
jne 0x455cfa
xor eax, eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0x678945], 0
jne 0x455dce
cmp byte [ebp - 0x43], 1
jbe 0x455dca
movzx eax, word [ebp + 0x14]
add ax, 0x80
call fcn.0043130c
and byte [ebp - 0x43], 1
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 0x10
jne 0x455da4
cmp byte [ebp - 0x43], 1
jbe 0x455de8
xor edx, edx
mov ax, 0x7e
call fcn.004309cc
cmp byte [ebp - 0x43], 3
jne 0x455dfa
mov eax, 0x32
call fcn.00431004
jmp 0x455e52
push 0x340032
push 0xb9012c
push 0x140050
push 0x20037
push 2
call fcn.0045a144
push 0x350032
push 0xb90190
push 0x140050
push 0x30035
push 0x101
call fcn.0045a144
mov eax, 0x452d48
mov dword [0x669bad], eax
mov eax, 0x452db0
mov dword [0x668d07], eax
mov dl, 1
mov ax, 0x32
call fcn.00430f64
cmp dword [ebp - 4], 1
jne 0x456018
mov eax, dword [ebp - 8]
cmp byte [eax + 0x10], 3
jne 0x455ebc
movzx eax, byte [0x4d4a1a]
shl eax, 0xc
add eax, 0x200
add eax, 5
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
shl eax, 5
test byte [eax*8 + 0x678aa8], 1
je 0x456018
test byte [eax*8 + 0x678ba8], 1
je 0x456018
mov dl, 0x1e
mov eax, 0x9e08a8
call fcn.0041a0ac
cmp al, 1
jne 0x456018
xor eax, eax
call fcn.004520a8
jmp 0x456018
mov eax, 0x145
call fcn.00431004
mov cx, 1
mov edx, 0x5a0186
mov eax, 0x1450001
call fcn.00459df8
mov dx, 0x86af
mov eax, dword [ebp - 0x14]
call fcn.00430db8
mov edx, dword [ebp - 0x28]
and edx, 0xff
movzx edx, dx
inc edx
sub edx, 3
call fcn.00430c44
push eax
mov eax, dword [0x66c265]
push eax
call sub.user32.dll_SetWindowTextW
mov cx, 0x6b0
mov edx, 0x2f0014
mov eax, 0x2620145
call fcn.0045a0dc
push 0x2630145
push 0x2d00b4
push 0x19000c8
push 0x1e06b2
call fcn.0045a1f8
push 0x1490145
push 0x530050
push 0x140050
push 0x10036
push 1
call fcn.0045a144
push 0x1470145
push 0x5300c8
push 0x140050
push 0x20037
push 2
call fcn.0045a144
push 0x1480145
push 0x53012c
push 0x140050
push 0x30035
push 0x101
call fcn.0045a144
mov eax, fcn.004520a8
mov dword [0x66c2bd], eax
pushal
mov eax, dword [ebp - 0x28]
mov word [0x2e8d8e8], ax
push 3
pop ebx
mov esi, dword [ebp - 8]
cmp bl, byte [ebp - 0x28]
je 0x455ff2
mov eax, dword [ebp - 0x14]
lea edx, [ebx - 2]
neg edx
call fcn.00430c44
mov edx, 0x280020
call fcn.00430e14
movzx ecx, byte [esi + ebx]
mov dx, 0x6b1
jecxz 0x455fdb
lea edx, [ecx + 0x655]
cmp ecx, 4
jbe 0x455fdb
mov edx, dword [ecx*2 + 0x4d4796]
and dh, 0x7f
call fcn.00430db8
mov dl, 0x29
call fcn.00430e24
mov edx, eax
mov ax, 0x263
call fcn.00430c80
inc ebx
mov al, 8
cmp byte [esi + 0x10], 1
jne 0x455ffd
mov al, 0xe
cmp bl, al
jbe 0x455fa0
mov eax, 0x263
cdq
call fcn.00430ccc
mov ax, 0x145
mov dl, 1
call fcn.00430f64
popal
cmp dword [ebp - 0x2c], 0x144
jne case.0x454394.517
mov word [ebp + 0x12], 1
call fcn.004531e8
jmp 0x459c91
cmp dword [ebp - 0x2c], 0x3d0
jne 0x4560f5
mov eax, dword [ebp + 0x14]
lea edx, [ebp - 0xc]
movzx ecx, ax
mov dword [edx], ecx
shr eax, 0x10
mov dword [edx + 4], eax
mov ecx, 0x2e7894c
or eax, 0xffffffff
call fcn.00453058
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0
jl 0x4560f5
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x25], 0
jne 0x45608e
mov eax, dword [0x667e98]
mov edx, dword [ebp + 0x10]
xor byte [eax + edx], 1
mov eax, dword [0x667e98]
mov edx, dword [ebp + 0x10]
and byte [eax + edx], 0xfd
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x25], 1
jne 0x4560ec
mov eax, dword [0x667e98]
mov edx, dword [ebp + 0x10]
cmp byte [eax + edx], 0x80
jae 0x4560ec
xor eax, eax
mov dword [ebp + 0x14], eax
mov eax, dword [0x667e98]
mov edx, dword [ebp + 0x14]
and byte [eax + edx], 0x80
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 0x10000
jne 0x4560aa
mov eax, dword [0x667e98]
mov edx, dword [ebp + 0x10]
inc byte [eax + edx]
xor edx, edx
mov ax, 0x317
call fcn.004312c4
cmp dword [ebp + 0xc], 0x203
jne 0x4560ec
call dword [0x6740b7]
jmp 0x459c91
mov ax, 0x3d0
call fcn.00431270
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x11], 0x51
jne 0x4561c3
movzx ecx, word [ebp + 0x14]
mov eax, ecx
mov ebx, 0x28
xor edx, edx
div ebx
test edx, edx
je 0x459c91
mov eax, dword [ebp + 0x14]
shr eax, 0x10
mov ebx, 0x19
cdq
idiv ebx
test edx, edx
je 0x459c91
mov eax, ecx
mov ecx, 0x28
xor edx, edx
div ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x14]
shr eax, 0x10
mov ecx, 0x19
cdq
idiv ecx
mov ebx, eax
mov dword [ebp - 0xc], ebx
mov edx, ebx
add edx, 0x80
mov eax, dword [ebp - 8]
shl eax, 3
add edx, eax
mov eax, 0x2e8d9ec
call fcn.004306d8
test al, al
jne 0x459c91
mov edx, dword [ebp - 8]
shl edx, 3
add edx, dword [ebp - 0xc]
mov eax, 0x2e8d9ec
call fcn.004306d8
test al, al
je 0x45619e
mov edx, dword [ebp - 8]
shl edx, 3
add edx, dword [ebp - 0xc]
mov eax, 0x2e8d9ec
call fcn.004306d4
jmp 0x4561b1
mov edx, dword [ebp - 8]
shl edx, 3
add edx, dword [ebp - 0xc]
mov eax, 0x2e8d9ec
call fcn.004306d0
mov ax, 0x358
call fcn.00431270
mov ax, 0x365
call fcn.00431270
pushal
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x2c]
mov al, byte [esi + 0x11]
cmp al, 0x4d
jne 0x456207
movzx eax, word [ebp + 0x14]
cdq
lea ecx, [edx + 0x39]
div ecx
or edx, edx
je 0x45628b
mov edi, eax
movzx eax, word [ebp + 0x16]
cdq
mov cl, 0x1c
div ecx
or edx, edx
je 0x45628b
shl eax, 4
add eax, edi
add eax, dword [esi + 0x25]
btc dword [0x4e919c], eax
jmp 0x45627d
sub al, 0x4b
cmp al, 1
ja 0x4562ce
jb 0x456217
rol dword [ebp + 0x14], 0x10
cmp dword [esi + 0x12], 0
je 0x4562ce
mov edi, 0x4d4a0b
mov eax, esi
lea edx, [ebp - 0xc]
call fcn.00451240
movsx eax, word [ebp + 0x16]
cmp eax, 0x13
jae 0x456251
cmp dword [esi + 0x25], 0
je 0x45628b
mov byte [esi + 0x2f], 0
dec dword [esi + 0x25]
je 0x456275
inc byte [esi + 0x2f]
mov byte [edi + 2], 1
jmp 0x456272
cmp eax, dword [ebp - 4]
jbe 0x456291
mov eax, dword [esi + 0x12]
cmp dword [esi + 0x25], eax
jae 0x45628b
inc dword [esi + 0x25]
mov byte [esi + 0x2f], 0
cmp eax, dword [esi + 0x25]
je 0x456275
mov byte [esi + 0x2f], 2
mov byte [edi + 2], 2
mov word [edi], bx
call sub.kernel32.dll_GetTickCount
mov dword [edi + 0xa], eax
mov eax, ebx
call fcn.00431270
mov eax, ebx
call fcn.0043051c
popal
jmp 0x459c91
cmp eax, dword [ebp - 8]
jb 0x45628b
cmp eax, dword [ebp - 0xc]
ja 0x45628b
movsx eax, word [ebp + 0x14]
dec eax
cmp eax, 0x11
jae 0x45628b
mov word [edi], bx
mov byte [esi + 0x2f], 4
mov byte [edi + 2], 4
mov eax, dword [esi + 0x25]
mov dword [edi + 4], eax
mov eax, dword [ebp + 0x16]
mov word [edi + 8], ax
mov eax, ebx
call fcn.00431270
push dword [esi + 0xc]
call sub.user32.dll_SetCapture
jmp 0x45628b
popal
test byte [ebp - 0x44], 2
jbe 0x45630f
mov eax, dword [ebp + 8]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
call fcn.004531bc
or eax, eax
js 0x456309
mov edx, 0x2e78934
mov dword [edx], eax
shl eax, 8
add eax, 0x678aa7
mov ecx, dword [eax]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov byte [edx + 7], cl
call fcn.004305fc
nop
jmp 0x459c91
pushal
mov edi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x2c]
mov al, byte [edi + 0x11]
cmp al, 0x3b
movsx edx, word [ebp + 0x16]
movzx esi, byte [edi + 0x30]
movzx ecx, byte [edi + 0x2f]
jne 0x456333
mov eax, edx
movsx edx, word [ebp + 0x14]
xchg ecx, esi
jmp 0x45633b
cmp al, 0x3a
jne 0x456397
movsx eax, word [ebp + 0x14]
sub eax, 3
js 0x45636c
cmp edx, 3
jl 0x45636c
dec esi
cmp edx, esi
jg 0x45636c
cdq
idiv ecx
sub ecx, 3
cmp edx, ecx
jg 0x45636c
movzx ecx, byte [edi + 0x31]
cmp eax, ecx
jae 0x45636c
cmp al, byte [edi + 0x2e]
je 0x45636c
bt dword [edi + 0x12], eax
jae 0x456372
call fcn.00430a0c
nop
jmp 0x4563f6
mov byte [edi + 0x2e], al
mov eax, ebx
call fcn.00431270
mov ecx, dword [edi + 4]
mov eax, ebx
jecxz 0x456385
call ecx
mov ax, 1
cmp bx, 7
je 0x4563d9
cmp bx, 5
jne 0x4563f6
jmp 0x4563d9
cmp al, 0x34
jne 0x4563a2
call fcn.00453f80
jmp 0x4563b4
cmp al, 0x35
jne 0x4563fc
pushal
mov eax, edi
call fcn.00452084
popal
call fcn.00453fd0
mov al, byte [edi + 0x2e]
mov byte [edi + 0x30], al
cmp dword [ebp + 0x10], 0xffffffff
jne 0x4563c7
call fcn.00454008
jmp 0x4563f6
mov al, byte [edi + 0x2e]
mov byte [edi + 0x2f], al
call sub.user32.dll_GetFocus
cmp eax, dword [ebp + 8]
jne 0x4563e0
mov eax, ebx
call fcn.00431270
jmp 0x4563e8
push dword [ebp + 8]
call sub.user32.dll_SetFocus
cmp byte [edi + 0x11], 0x34
jne 0x4563f6
push dword [ebp + 8]
call sub.user32.dll_SetCapture
popal
jmp 0x459c91
popal
jmp case.0x454394.517
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [eax + 0x14]
call fcn.0043128c
mov dword [ebp - 0x28], eax
imul eax, eax, 0x32
add eax, 0x6682df
mov dword [ebp - 0x10], eax
pop edx
mov eax, dword [edx + 0x24]
sub eax, dword [edx + 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx + 0x28]
sub eax, dword [edx + 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 4
jne 0x456a22
pushal
push 0x7f
push dword [ebp - 0x14]
mov ebx, dword [ebp + 0x14]
push dword [ebx + 0x14]
call sub.user32.dll_GetWindowTextW
mov ebx, dword [ebx + 0x10]
mov edi, dword [ebp - 0x10]
push ebp
mov al, byte [edi + 0x11]
cmp al, 2
jne 0x456521
mov eax, 0xc0c0c0
test bl, 4
jne 0x456473
mov eax, 0xe0e0e0
call fcn.004533e8
mov esi, dword [ebp - 0x30]
add esi, 0xc
test bl, 0x10
je 0x45649c
mov dword [esi], 0xc00000
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
mov edi, 0x30003
test bl, 1
je 0x4564c6
mov dword [esi], 0xffc0c0
push 1
push 1
mov eax, dword [ebp - 0x1c]
dec eax
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
call fcn.00453344
mov edi, 0x40004
test bl, 4
je 0x4564d2
lea eax, [di + 0x4000]
jmp 0x4564fe
mov dword [esi], 0xc0c0c0
mov ebx, fcn.004534b0
xor eax, eax
cdq
call ebx
mov eax, dword [ebp - 0x1c]
dec eax
xor edx, edx
call ebx
mov edx, dword [ebp - 0x18]
dec edx
xor eax, eax
call ebx
mov eax, dword [ebp - 0x1c]
dec eax
mov edx, dword [ebp - 0x18]
dec edx
call ebx
mov eax, edi
mov edx, 0x4ce4a0
jmp 0x45658f
cmp al, 0xf
jne 0x45659e
xor eax, eax
call fcn.004533e8
mov esi, dword [ebp - 0x30]
add esi, 8
mov dword [esi], 0xffffff
mov eax, dword [ebp - 0x28]
cmp ax, word [0x6785eb]
jne 0x45654a
mov dword [esi], 0xffb000
test bl, 4
je 0x456562
mov dword [esi], 0xc0c0c0
xor eax, eax
call fcn.00456508
mov dword [esi], 0x606060
or eax, 0xffffffff
call fcn.00456508
xor eax, eax
mov edx, dword [edi + 0x2a]
or edx, edx
je 0x456594
cmp ax, word [0x6785eb]
jne 0x45657e
mov ah, 0x80
test bl, 4
je 0x456585
mov ah, 0x40
test bl, 1
je 0x45658f
mov eax, 0x18001
call fcn.00453dfc
call fcn.0045349c
call fcn.004534a4
pop eax
popal
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 1
ja 0x45676e
cmp dword [ebp - 0x28], 0x2c2
jl 0x45663b
cmp dword [ebp - 0x28], 0x2c9
jg 0x45663b
movzx eax, word [ebp - 0x28]
cmp eax, dword [0x6785eb]
jne 0x4565fa
mov eax, 0xfff0f0
call fcn.004533e8
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0xc00000
push ebp
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
pop ecx
jmp 0x456604
mov eax, 0xffffff
call fcn.004533e8
mov eax, dword [ebp + 0x14]
test dword [eax + 0x10], 4
jbe 0x45661a
mov eax, dword [ebp - 0x30]
mov dword [eax + 8], 0xc0c0c0
mov edx, dword [ebp - 0x18]
sub edx, 0xf
shr edx, 1
mov eax, 8
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
pushal
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax + 0x10]
push ebp
mov eax, 0xc0c0c0
test bl, 4
jne 0x456652
mov eax, 0xffffff
call fcn.004533e8
mov edi, dword [ebp - 0x30]
add edi, 0xc
and dword [edi], 0
test bl, 0x10
je 0x456669
mov byte [edi + 2], 0xc0
test bl, 4
je 0x456674
mov dword [edi], 0x808080
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov esi, dword [ebp - 0x18]
dec esi
push esi
call fcn.00453344
dec esi
mov eax, dword [ebp - 0x28]
cmp ax, word [0x6785eb]
jne 0x4566aa
mov dword [edi], 0xfff0f0
push 1
push 1
mov eax, dword [ebp - 0x1c]
dec eax
dec eax
push eax
push esi
call fcn.00453294
test bl, 1
je 0x4566c5
mov dword [edi], 0xffc0c0
push 1
push 1
mov eax, dword [ebp - 0x1c]
dec eax
dec eax
push eax
push esi
call fcn.00453344
mov dword [edi], 0xc0c0c0
lea edx, [esi + 1]
xor eax, eax
mov esi, fcn.004534b0
call esi
mov eax, dword [ebp - 0x1c]
dec eax
xor edx, edx
call esi
xor eax, eax
cdq
call esi
mov eax, dword [ebp - 0x1c]
dec eax
mov edx, dword [ebp - 0x18]
dec edx
call esi
mov esi, dword [ebp - 0x18]
sub esi, 0xf
shr esi, 1
mov al, 1
call fcn.00453824
neg eax
add eax, dword [ebp - 0x1c]
shr eax, 1
bts eax, 0x18
mov dword [ebp - 0x40], eax
add edi, 0xfffffffc
test bl, 4
je 0x45672d
mov dword [edi], 0x808080
mov eax, dword [ebp - 0x40]
lea edx, [esi + 1]
inc eax
call fcn.004536e0
mov dword [edi], 0xe0e0e0
jmp 0x456758
and dword [edi], 0
test bl, 0x10
je 0x456739
mov byte [edi + 2], 0xc0
test bl, 1
je 0x456758
mov dword [edi], 0xffc0c0
mov eax, dword [ebp - 0x40]
mov edx, esi
call fcn.004536e0
inc dword [ebp - 0x40]
inc esi
mov dword [edi], 0xc00000
mov eax, dword [ebp - 0x40]
mov edx, esi
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
pop eax
popal
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x11]
cmp al, 5
jb 0x4568a3
cmp al, 7
ja 0x4568a3
pushal
push ebp
mov eax, 0x808080
call fcn.004533e8
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax + 0x10]
mov eax, dword [ebp - 0x28]
cmp ax, word [0x6785eb]
sete bh
mov edi, dword [ebp - 0x30]
add edi, 0xc
mov esi, fcn.00453344
test bl, 1
je 0x4567ca
mov dword [edi], 0xc00000
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call esi
mov eax, dword [ebp - 0x10]
mov al, byte [eax + 0x11]
cmp al, 6
jne 0x456805
and dword [edi], 0
push 3
push 0x10
push 0xb
push 0x14
call esi
call fcn.004567f5
push 4
push 0x11
push 0xa
push 0x13
call fcn.00453294
jmp 0x456828
cmp al, 5
jne 0x45682b
mov edx, 0x4ce361
or bh, bh
je 0x456817
mov edx, 0x4ce222
test bl, 1
je 0x456821
mov edx, 0x4ce0e3
xor eax, eax
call fcn.00453dfc
nop
jmp 0x456897
call fcn.004567f5
push 4
cmp byte [0x4d4a1b], 0
jne 0x456859
push 4
push 0x13
push 0x13
call esi
push 5
push 5
push 0x12
push 0x12
call esi
push 6
push 6
push 0x11
push 7
call esi
jmp 0x456897
push 9
push 0xe
push 0x13
call esi
push 5
push 0xa
push 0xc
call fcn.00453304
push 9
push 4
push 0x13
push 5
call esi
push 9
push 6
push 7
call fcn.00453324
push 0x13
push 6
push 0xe
call fcn.00453324
push 0x10
push 0xe
push 0x12
call fcn.00453304
call fcn.0045349c
call fcn.004534a4
pop eax
popal
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x11]
cmp al, 0xa
jb 0x456a22
cmp al, 0xd
ja 0x456a22
mov eax, 0xc0c0c0
call fcn.004533e8
pushal
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax + 0x10]
mov edi, dword [ebp - 0x30]
add edi, 0xc
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0xd
jne 0x45696f
test bl, 4
jne 0x45690c
mov edx, 0xffffff
movzx eax, word [0x6785eb]
cmp eax, dword [ebp - 0x28]
jne 0x4568f8
mov dx, 0xf0f0
mov dword [edi], edx
push ebp
push 1
push 1
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
push eax
call fcn.00453294
pop eax
and dword [edi], 0
mov esi, 0x4ce067
test bl, 0x10
je 0x456924
mov esi, 0x4cdf61
mov dword [edi], 0xc00000
test bl, 4
je 0x456934
mov esi, 0x4cdee8
mov dword [edi], 0x808080
push ebp
push 0
push 0
mov eax, dword [ebp - 0x18]
dec eax
push eax
push eax
call fcn.00453344
pop eax
test bl, 1
je 0x4569ab
mov dword [edi], 0xffc0c0
push ebp
push 1
push 1
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
push eax
call fcn.00453344
pop eax
mov esi, 0x4cdfdd
mov dword [edi], 0xe08080
jmp 0x4569ab
xor eax, eax
cdq
test bl, 4
setne al
test bl, 0x10
je 0x45697f
mov al, 2
test bl, 1
je 0x456986
mov al, 3
mov esi, dword [eax*4 + 0x4d4ae8]
movzx ecx, word [0x6785eb]
cmp ecx, dword [ebp - 0x28]
jne 0x45699b
mov dl, 0x10
push ebp
mov edx, dword [edx + eax*4 + 0x4d4ac8]
xor eax, eax
call fcn.00453dfc
pop eax
mov eax, dword [ebp - 0x10]
test byte [eax + 0x18], 1
je 0x4569bf
push ebp
mov edx, esi
xor eax, eax
call fcn.00453dfc
pop eax
popal
pushal
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x10]
mov esi, 0x1000014
mov edi, dword [ebp - 0x30]
add edi, 8
test al, 4
je 0x4569e3
mov dword [edi], 0x808080
push 0xe0e0e0
jmp 0x4569fd
xor ecx, ecx
mov edx, 0xc00000
test al, 0x10
jne 0x4569f0
mov ecx, edx
test al, 1
je 0x456a0c
mov ecx, edx
push ecx
mov dword [edi], 0xffc0c0
push ebp
xor edx, edx
inc edx
lea eax, [esi + edx]
call fcn.004536e0
pop eax
pop dword [edi]
mov eax, esi
xor edx, edx
push ebp
call fcn.004536e0
pop eax
popal
call fcn.0045349c
call fcn.004534a4
mov eax, dword [ebp + 0x14]
cmp dword [eax], 5
jne 0x45932b
lea esi, [eax + 0x1c]
lea edi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x59
jne 0x456b5d
mov eax, 0xf0fff0
mov edx, 0x81fa02e2
mov cl, 0x2c
call fcn.00454044
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x2c]
mov edx, dword [0x4d4a04]
mov ebx, dword [edx + 0x30]
sub eax, ebx
sub eax, dword [ebp + 0x10]
test eax, eax
jle 0x456b4e
add ebx, dword [ebp + 0x10]
mov eax, dword [0x4d4a04]
mov eax, dword [eax + ebx*4 + 0x121eb14]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx edx, word [edx + eax + 0x1e46374]
mov eax, dword [0x4d4a04]
add eax, 0x2a9f9f0
call fcn.004306d8
test al, al
je 0x456aac
call fcn.00453398
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x30]
add eax, dword [ebp + 0x10]
inc eax
neg eax
call fcn.00454038
mov edx, dword [ebp - 0x14]
xor eax, eax
call fcn.0045a278
mov edx, 0x25
sub edx, eax
mov dword [ebp - 0xc], edx
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x30]
add eax, dword [ebp + 0x10]
mov edx, dword [0x4d4a04]
mov eax, dword [edx + eax*4 + 0x121eb14]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx eax, byte [edx + eax + 0x1e46378]
call fcn.004530dc
mov edx, 3
mov eax, dword [ebp - 0xc]
call fcn.004536e0
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x30]
add eax, dword [ebp + 0x10]
mov edx, dword [0x4d4a04]
mov eax, dword [edx + eax*4 + 0x121eb14]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx eax, word [edx + eax + 0x1e46374]
mov edx, dword [ebp - 0x14]
call fcn.00450ce8
mov edx, 3
mov eax, 0x46
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x57
jne 0x456c46
mov eax, 0xfffff0
mov edx, 0x897102e2
mov cl, 0xc
call fcn.00454044
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0xc]
mov edx, dword [0x4d4a04]
mov ebx, dword [edx + 0x18]
sub eax, ebx
sub eax, dword [ebp + 0x10]
test eax, eax
jle 0x456c37
add ebx, dword [ebp + 0x10]
mov eax, dword [0x4d4a04]
imul eax, dword [eax + ebx*4 + 0xe4e214], 0xb
mov edx, dword [0x4d4a04]
movzx edx, word [edx + eax + 0x54]
mov eax, dword [0x4d4a04]
add eax, 0x2aa39f0
call fcn.004306d8
test al, al
je 0x456bcc
call fcn.00453398
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x18]
add eax, dword [ebp + 0x10]
inc eax
neg eax
call fcn.00454038
mov edx, dword [ebp - 0x14]
xor eax, eax
call fcn.0045a278
push eax
mov eax, 0x32
pop edx
sub eax, edx
mov edx, 3
call fcn.004536e0
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x18]
add eax, dword [ebp + 0x10]
mov edx, dword [0x4d4a04]
imul eax, dword [edx + eax*4 + 0xe4e214], 0xb
mov edx, dword [0x4d4a04]
movzx eax, word [edx + eax + 0x54]
mov edx, dword [ebp - 0x14]
call fcn.00450ce8
mov edx, 3
mov eax, 0x46
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x58
jne 0x456d2f
mov eax, 0xf0f0ff
mov edx, 0x89d502f6
mov cl, 8
call fcn.00454044
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 8]
mov edx, dword [0x4d4a04]
mov ebx, dword [edx + 0x1c]
sub eax, ebx
sub eax, dword [ebp + 0x10]
test eax, eax
jle 0x456d20
add ebx, dword [ebp + 0x10]
mov eax, dword [0x4d4a04]
imul eax, dword [eax + ebx*4 + 0xa7d914], 0xb
mov edx, dword [0x4d4a04]
movzx edx, word [edx + eax + 0x57]
mov eax, dword [0x4d4a04]
add eax, 0x2aa19f0
call fcn.004306d8
test al, al
je 0x456cb5
call fcn.00453398
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x1c]
add eax, dword [ebp + 0x10]
inc eax
neg eax
call fcn.00454038
mov edx, dword [ebp - 0x14]
xor eax, eax
call fcn.0045a278
push eax
mov eax, 0x32
pop edx
sub eax, edx
mov edx, 3
call fcn.004536e0
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x1c]
add eax, dword [ebp + 0x10]
mov edx, dword [0x4d4a04]
imul eax, dword [edx + eax*4 + 0xa7d914], 0xb
mov edx, dword [0x4d4a04]
movzx eax, word [edx + eax + 0x57]
mov edx, dword [ebp - 0x14]
call fcn.00450ce8
mov edx, 3
mov eax, 0x46
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x5a
jne 0x456eeb
mov edx, 0x89da0401
mov al, byte [0x2e8d8ea]
cmp al, 0xc
je 0x456d4e
cmp al, 0xf
jne 0x456d53
mov edx, 0x8a290401
mov eax, 0xf0f0f0
mov cl, 0x48
call fcn.00454044
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x48]
mov edx, dword [0x4d4a04]
mov ebx, dword [edx + 0x40]
sub eax, ebx
sub eax, dword [ebp + 0x10]
test eax, eax
jle 0x456edc
add ebx, dword [ebp + 0x10]
mov eax, dword [0x4d4a04]
mov eax, dword [eax + ebx*4 + 0x19bfd14]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx edx, word [edx + eax + 0x27cf9f6]
mov eax, dword [0x4d4a04]
add eax, 0x2aa59f0
call fcn.004306d8
test al, al
je 0x456db5
call fcn.00453398
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x40]
add eax, dword [ebp + 0x10]
inc eax
neg eax
call fcn.00454038
mov edx, dword [ebp - 0x14]
xor eax, eax
call fcn.0045a278
push eax
mov eax, 0x32
pop edx
sub eax, edx
mov edx, 3
call fcn.004536e0
mov dword [ebp - 0x40], 0x46
cmp byte [0x2e8d8ea], 0xc
je 0x456e9e
cmp byte [0x2e8d8ea], 0xf
je 0x456e9e
mov eax, dword [ebp - 0x14]
mov word [eax + 8], 0
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x40]
add eax, dword [ebp + 0x10]
mov edx, dword [0x4d4a04]
mov eax, dword [edx + eax*4 + 0x19bfd14]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx eax, byte [edx + eax + 0x27cf9f8]
mov byte [ebp - 0x42], al
xor eax, eax
mov dword [ebp + 0x14], eax
movzx eax, byte [ebp - 0x42]
and al, 3
dec al
je 0x456e50
dec al
je 0x456e5e
jmp 0x456e6c
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0x14]
mov word [eax + edx*2], 0x56
jmp 0x456e78
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0x14]
mov word [eax + edx*2], 0x5a
jmp 0x456e78
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0x14]
mov word [eax + edx*2], 0x4e
movzx eax, byte [ebp - 0x42]
shr eax, 2
mov byte [ebp - 0x42], al
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 4
jne 0x456e40
mov edx, 3
mov eax, 0x46
call fcn.004536e0
add dword [ebp - 0x40], 0x32
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x40]
add eax, dword [ebp + 0x10]
mov edx, dword [0x4d4a04]
mov eax, dword [edx + eax*4 + 0x19bfd14]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx eax, word [edx + eax + 0x27cf9f6]
mov edx, dword [ebp - 0x14]
call fcn.00450ce8
mov edx, 3
mov eax, dword [ebp - 0x40]
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x5b
jne 0x456fde
mov eax, 0xf0f0f0
mov edx, 0x8a2a0426
mov cl, 0x4c
call fcn.00454044
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x4c]
mov edx, dword [0x4d4a04]
mov ebx, dword [edx + 0x44]
sub eax, ebx
sub eax, dword [ebp + 0x10]
test eax, eax
jle 0x456fcf
add ebx, dword [ebp + 0x10]
mov eax, dword [0x4d4a04]
mov eax, dword [eax + ebx*4 + 0x1bf3044]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx edx, word [edx + eax + 0x27cf9f6]
mov eax, dword [0x4d4a04]
add eax, 0x2aa79f0
call fcn.004306d8
test al, al
je 0x456f5f
call fcn.00453398
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x44]
add eax, dword [ebp + 0x10]
inc eax
neg eax
call fcn.00454038
mov edx, dword [ebp - 0x14]
xor eax, eax
call fcn.0045a278
push eax
mov eax, 0x32
pop edx
sub eax, edx
mov edx, 3
call fcn.004536e0
mov eax, dword [0x4d4a04]
mov eax, dword [eax + 0x44]
add eax, dword [ebp + 0x10]
mov edx, dword [0x4d4a04]
mov eax, dword [edx + eax*4 + 0x1bf3044]
lea eax, [eax + eax*4]
mov edx, dword [0x4d4a04]
movzx eax, word [edx + eax + 0x27cf9f6]
mov edx, dword [ebp - 0x14]
call fcn.00450ce8
mov edx, 3
mov eax, 0x46
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
cmp dword [ebp - 0x28], 0x3d0
jne 0x457643
mov eax, 0x505000
call fcn.004533e8
mov eax, 0x2e7893c
mov dword [ebp - 0x10], eax
or byte [ebp - 0x44], 0x80
pushal
and dword [ebp + 0x10], 0
inc dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
cmp edx, dword [eax + 0xc]
ja 0x45718c
imul edx, dword [ebp + 0x10], 0x14
lea esi, [eax + edx - 4]
mov edi, dword [ebp - 0x30]
add edi, 0xc
movzx eax, word [esi + 0x10]
cmp byte [ebp - 0x44], 0x7f
ja 0x457093
shl eax, 8
lea ebx, [eax + 0x678aa7]
movzx edx, byte [ebx]
movzx ecx, byte [ebx + 2]
mov eax, 0xe0e0e0
cmp edx, 0x1a
jne 0x45704e
jecxz 0x4570bf
jmp 0x45708c
cmp edx, 0x12
jne 0x45705d
dec ecx
js 0x4570bf
je 0x45708c
mov eax, 0xffc0c0
test byte [ebx + 1], 1
je 0x4570bf
cmp edx, 9
jne 0x457070
mov cl, byte [ecx + 0x4d48e8]
jmp 0x45707b
cmp edx, 4
jne 0x457082
mov cl, byte [ecx + 0x4d491a]
mov eax, dword [ecx*4 + 0x4d4744]
mov ecx, 0x7b8000ca
bt ecx, edx
jae 0x4570bf
mov eax, 0xc0e0ff
jmp 0x4570bf
mov ebx, dword [0x667e98]
mov bl, byte [eax + ebx]
mov eax, 0xf0f0f0
test bl, 1
je 0x4570ab
mov eax, 0x80ff80
test bl, 2
je 0x4570b5
mov eax, 0xffe0e0
cmp bl, 0x7f
jbe 0x4570bf
mov eax, 0x606060
mov dword [edi], eax
push ebp
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
push eax
call fcn.00453294
sub esi, 0x10
cmp byte [ebp - 0x44], 0x7f
ja 0x457169
cmp byte [ebx], 9
je 0x4570e6
cmp byte [ebx], 4
jne 0x457113
cmp byte [ebx + 8], 0
je 0x457113
mov dword [edi], 0xffffff
mov edx, dword [esi + 4]
inc edx
mov eax, dword [esi]
inc eax
test dl, 1
jne 0x4570ff
inc eax
pushal
call fcn.004534b0
popal
inc eax
inc eax
cmp eax, dword [esi + 8]
jb 0x4570ff
inc edx
cmp edx, dword [esi + 0xc]
jb 0x4570f6
test byte [ebx + 1], 8
je 0x457145
mov eax, 0xffffff
cmp byte [ebx], 4
je 0x45712a
cmp byte [ebx], 0x12
je 0x45712a
mov al, 0x40
mov dword [edi], eax
push dword [esi]
mov eax, dword [esi + 4]
add eax, dword [esi + 0xc]
shr eax, 1
dec eax
dec eax
push eax
push dword [esi + 8]
add eax, 5
push eax
call fcn.00453294
xor eax, eax
test byte [ebx + 1], 4
je 0x457178
mov dword [edi], 0xffffff
lodsd eax, dword [esi]
inc eax
push eax
lodsd eax, dword [esi]
inc eax
push eax
lodsd eax, dword [esi]
dec eax
push eax
lodsd eax, dword [esi]
dec eax
push eax
call fcn.00453344
sub esi, 0x10
jmp 0x457179
mov eax, 0xffffff
test bl, 2
je 0x457178
mov eax, 0x606060
stosd dword es:[edi], eax
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
push eax
call fcn.00453344
pop eax
jmp 0x457006
popal
pushal
and dword [ebp + 0x10], 0
inc dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
cmp edx, dword [eax + 0xc]
ja 0x457629
imul edx, edx, 0x14
lea ebx, [eax + edx - 4]
mov dword [ebp + 0xc], ebx
mov edi, fcn.0045402c
mov esi, fcn.00454038
mov al, byte [ebx + 0x12]
cmp al, 1
jne 0x4571ff
mov ax, 0x801d
call edi
mov eax, dword [ebx + 0x10]
and eax, 0x7f
add eax, 0xfffffffe
call esi
cmp byte [ebx + 0x13], 0
jne 0x4571dd
call fcn.00453774
jmp 0x457192
call fcn.0045376c
movzx edx, byte [ebx + 0x13]
mov ax, 0x88a7
cmp edx, 0x64
je 0x4571f6
mov eax, dword [edx*2 + 0x4d4796]
call edi
call fcn.0045377c
jmp 0x457192
cmp al, 3
jb 0x457192
ja 0x45721e
mov ax, 0x8033
call edi
call fcn.0045376c
movzx eax, word [ebx + 0x10]
and ah, 1
inc eax
neg eax
call esi
jmp 0x4571f8
cmp al, 5
jae 0x4572cb
xor eax, eax
mov edx, dword [ebx + 0x10]
mov ah, dh
shr eax, 4
shl ah, 4
inc ah
cmp dl, 0x7f
jbe 0x45723b
inc eax
and edx, 0x7f
mov dh, 0x2d
cmp byte [ebx + 0x13], 0
je 0x457253
shl eax, 8
cmp byte [eax + 0x678aac], al
jne 0x45726c
jmp 0x457278
movzx edx, byte [ebx + 0x11]
mov eax, dword [0x4e917c]
mov al, byte [eax + edx + 0x2d]
cmp byte [ebx + 0x10], 0x7f
ja 0x457268
add eax, eax
cmp al, 0x7f
ja 0x457278
mov dh, 0x61
cmp dl, 0x3f
jbe 0x457275
inc dh
and dl, 0x3f
push edx
mov eax, dword [ebx + 0x10]
shr eax, 7
and eax, 0x1f
neg eax
add eax, 5
call esi
mov dl, byte [esp + 1]
call fcn.00430e24
pop eax
and eax, 0x7f
inc eax
call esi
movzx eax, word [ebx + 0x10]
shl eax, 8
cmp byte [ebx + 0x13], al
movzx ebx, byte [eax + 0x678aa9]
jne 0x4572bb
shr eax, 8
add eax, dword [0x4e917c]
mov ebx, dword [eax + 0x2d]
and ebx, 0x7f
or ebx, ebx
je 0x4572ea
call fcn.0045376c
lea eax, [bx - 0x7e70]
jmp 0x457331
ja 0x4572f0
mov ax, 0x804d
call edi
mov eax, dword [ebx + 0x10]
mov edx, eax
shr eax, 3
and eax, 0x1e
and edx, 3
setne dl
lea eax, [eax + edx - 5]
call esi
nop
jmp 0x4571d6
cmp al, 7
jae 0x457337
mov ax, 0x80af
call edi
call fcn.0045376c
movzx eax, byte [ebx + 0x10]
shr eax, 4
sub eax, 2
neg eax
call esi
mov dl, 0x2d
call fcn.00430e24
mov eax, dword [ebx + 0x10]
and eax, 0xf
call esi
call fcn.00453774
movzx eax, byte [ebx + 0x13]
or eax, eax
je 0x457192
add ax, 0x80af
nop
jmp 0x4571f6
ja 0x45738a
mov ax, 0x80af
test byte [ebx + 0x13], 2
jne 0x457347
mov ax, 0x8293
call edi
mov eax, dword [ebx + 0x10]
and eax, 0xf
inc eax
call esi
movzx eax, word [ebx + 0x10]
shl eax, 8
test byte [ebx + 0x13], 1
movzx ebx, byte [eax + 0x678aa9]
jne 0x457374
shr eax, 8
and eax, 0xf
add eax, dword [0x4e917c]
mov bl, byte [eax]
dec ebx
js 0x4571d6
call fcn.0045376c
mov eax, dword [ebx*2 + 0x4d47b0]
nop
jmp 0x457331
cmp al, 9
ja 0x457408
jb 0x4572cd
mov eax, dword [ebx + 0x10]
movzx edx, ah
shl edx, 4
shl dh, 4
shl edx, 8
cmp byte [edx + 0x688aad], dl
pushfd
je 0x4573ae
xor al, al
shr eax, 7
and eax, 0x1f
neg eax
add eax, 5
call esi
mov dl, 0x2d
call fcn.00430e24
movzx eax, byte [ebx + 0x10]
popfd
jne 0x4573cc
and eax, 0x7f
inc eax
call esi
movzx eax, word [ebx + 0x10]
shl eax, 8
cmp byte [ebx + 0x13], al
movzx ebx, byte [eax + 0x678aa9]
jne 0x4573f1
shr eax, 8
add eax, dword [0x4e917c]
mov ebx, dword [eax + 0x2d]
and ebx, 0x7f
or ebx, ebx
je 0x4572ea
call fcn.0045376c
lea eax, [bx - 0x74ac]
jmp 0x457331
cmp al, 0xa
jb 0x457192
jne 0x45744c
mov ax, 0x8085
call edi
mov eax, dword [ebx + 0x10]
and eax, 0x7f
add al, 0xd5
call esi
movzx edx, word [ebx + 0x10]
movzx ebx, byte [ebx + 0x13]
shl edx, 8
or ebx, ebx
je 0x4571d6
cmp byte [edx + 0x678abf], dl
je 0x45747f
call fcn.0045376c
lea eax, [bx - 0x7db4]
jmp 0x457387
cmp al, 0xc
jae 0x457466
mov ax, 0x8032
push 0x4a
call edi
mov eax, dword [ebx + 0x10]
and eax, 0x7f
pop edx
sub eax, edx
jmp 0x4572e8
ja 0x457485
mov ax, 0x802e
call edi
mov eax, dword [ebx + 0x10]
and eax, 0x7f
sub al, 0x22
call esi
mov dl, 0x5d
call fcn.00430e24
nop
jmp 0x4571d6
cmp al, 0xe
jae 0x457491
mov ax, 0x802f
push 0x38
jmp 0x457456
ja 0x4574ac
mov ax, 0x89cc
call edi
call fcn.0045376c
mov eax, dword [ebx + 0x10]
and eax, 7
inc eax
neg eax
jmp 0x45721a
cmp al, 0x10
jae 0x4574d7
mov eax, dword [ebx + 0x10]
and eax, 0x7f
add ax, 0x800d
cmp al, 0x2e
jne 0x4574c2
mov ax, 0x8347
cmp al, 0x29
jne 0x4574d0
cmp byte [ebx + 0x13], 0
je 0x4574d0
mov ax, 0x85d1
call edi
jmp 0x4571d6
ja 0x4574df
mov ax, 0x8651
jmp 0x457497
cmp al, 0x12
jae 0x4574ec
mov ax, 0x829f
add al, byte [ebx + 0x13]
jmp 0x4574d0
ja 0x4574f4
mov ax, 0x8320
jmp 0x4574fc
cmp al, 0x14
jae 0x45753d
mov ax, 0x80be
call edi
cmp byte [ebx + 0x13], 0xff
jne 0x45750b
push 0x31
jmp 0x457458
mov eax, dword [ebx + 0x11]
and eax, 0xf
dec eax
dec eax
call esi
mov dl, 0x2d
call fcn.00430e24
mov eax, dword [ebx + 0x10]
and eax, 0xf
inc eax
call esi
cmp byte [ebx + 0x13], 0
je 0x4571d6
call fcn.0045376c
mov ax, 0x84e0
jmp 0x4571f6
ja 0x457545
mov ax, 0x8331
jmp 0x4574fc
cmp al, 0x16
ja 0x457551
je 0x45753f
mov ax, 0x8333
jmp 0x4574fc
cmp al, 0x18
jae 0x45755e
mov ax, 0x84a9
jmp 0x4574d0
ja 0x457569
mov ax, 0x84aa
jmp 0x4574d0
cmp al, 0x1a
jae 0x45757e
mov ax, 0x84ab
call edi
mov eax, dword [ebx + 0x10]
and eax, 0xf
jmp 0x4572e8
ja 0x457589
mov ax, 0x84c5
jmp 0x4574d0
cmp al, 0x1c
jae 0x457601
mov ax, 0x878c
push 3
call edi
mov eax, dword [ebx + 0x10]
movzx edi, ax
and eax, 0xf
pop edx
sub eax, edx
call esi
test byte [ebx + 0x13], 1
je 0x4571d6
shl edi, 8
cmp byte [edi + 0x678aa8], 0
je 0x4571d6
call fcn.0045376c
mov eax, dword [ebp - 0x14]
and dword [eax], 0
add edi, 0x678b68
cmp byte [ebx + 0x12], 0x1c
jne 0x4575ef
xor ebx, ebx
movzx eax, byte [edi + ebx]
call esi
inc ebx
cmp ebx, 3
ja 0x4571f8
mov dl, 0xb7
call fcn.00430e24
jmp 0x4575d6
mov edx, dword [edi]
or dl, dl
je 0x4571f8
inc edi
call fcn.00430e24
jmp 0x4575ef
ja 0x45760b
mov ax, 0x879e
push 0xffffffffffffffff
jmp 0x457593
cmp al, 0x1e
jae 0x457618
mov ax, 0x87bb
jmp 0x4574d0
ja 0x457192
mov ax, 0x88c0
push 0xb
jmp 0x457593
popal
call fcn.0045349c
cmp byte [ebp - 0x44], 0x7f
jbe 0x459c91
call fcn.004534a4
jmp 0x459c91
cmp dword [ebp - 0x28], 0x442
jne 0x457836
mov eax, 0xffffff
call fcn.004533e8
mov dx, 0x8a8c
mov eax, dword [ebp - 0x14]
call fcn.00430db8
mov edx, 3
mov eax, 0x400000dc
call fcn.004536e0
pushal
xor esi, esi
mov edi, dword [0x66f9f6]
add edi, esi
cmp edi, dword [0x667eb0]
jae 0x45771d
imul eax, edi, 0x408
add eax, dword [0x4e917c]
movzx eax, byte [eax + 0x14131]
inc eax
cmp eax, 0x63
jb 0x4576a7
xor eax, eax
cmp eax, 0x21
jbe 0x4576ae
mov al, 0x21
mov dword [ebp - 0xc], eax
lea edi, [esi*4 + 0x2a]
xor ebx, ebx
movzx eax, word [ebx*2 + 0x4d49f0]
cmp ebx, 9
jbe 0x4576cb
mov ax, 0xc0ff
cmp ebx, 7
jbe 0x4576d8
imul ecx, ebx, 7
sub ecx, 0x2a
sub ah, cl
shl eax, 8
or ebx, ebx
jne 0x4576e4
mov eax, 0x5b3c83
mov edx, dword [ebp - 0x30]
mov dword [edx + 0xc], eax
imul eax, ebx, 0xfffffff0
add eax, dword [ebp - 0x18]
sub eax, 0x1d
js 0x457712
push ebp
push edi
lea edx, [eax - 0xf]
or edx, edx
jns 0x457700
xor edx, edx
push edx
lea edx, [edi + 3]
push edx
push eax
call fcn.00453294
pop eax
inc ebx
cmp ebx, dword [ebp - 0xc]
jbe 0x4576ba
cmp edi, dword [ebp - 0x1c]
jae 0x45771d
inc esi
jmp 0x457678
xor ebx, ebx
mov edx, dword [ebp - 0x30]
mov dword [edx + 0xc], ebx
mov eax, 0x989680
sub eax, dword [0x66f9f6]
xor edx, edx
lea ecx, [edx + 0x32]
div ecx
lea esi, [ebx + edx*4]
push ebp
imul eax, ebx, 0x64
lea edi, [esi + eax*2 + 0x2a]
cmp edi, dword [ebp - 0x1c]
ja 0x457790
push edi
mov eax, dword [ebp - 0x18]
add eax, 0xffffffe3
push eax
add eax, 5
push eax
call fcn.00453324
mov eax, dword [0x66f9f6]
add eax, 0x31
xor edx, edx
lea ecx, [edx + 0x32]
div ecx
add eax, ebx
mul ecx
mov edx, eax
mov eax, dword [ebp - 0x14]
and dword [eax], 0
call fcn.00430c44
xor eax, eax
call fcn.00453824
shr eax, 1
neg eax
add eax, edi
mov edx, dword [ebp - 0x18]
add edx, 0xffffffeb
call fcn.004536e0
imul eax, ebx, 0xfffffff0
mov edi, dword [ebp - 0x18]
lea edi, [edi + eax - 0x2d]
or edi, edi
jle 0x4577ea
mov eax, dword [ebp - 0x14]
mov dx, 0x8954
call fcn.00430db8
or ebx, ebx
je 0x4577b9
and dword [eax], 0
lea edx, [ebx - 1]
call fcn.00430c44
xor eax, eax
call fcn.00453824
neg eax
add eax, 0x28
mov edx, edi
call fcn.004536e0
xor eax, eax
or ebx, ebx
je 0x4577d5
add eax, 0x2a
push eax
lea eax, [edi + 0x10]
push eax
push dword [ebp - 0x1c]
call fcn.00453304
inc bl
jne 0x45773b
pop eax
popal
mov ebx, dword [ebp - 0x14]
mov word [ebx], 0
cmp dword [0x667eb0], 0
jbe 0x45781b
mov dx, 0xa97
mov eax, ebx
call fcn.00430db8
mov edx, dword [0x4d4d14]
mov edx, dword [edx]
add edx, 0x1413b
call fcn.00430da0
mov dx, 0x44b
mov eax, dword [ebp - 0x14]
call fcn.00430cb8
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x56
jne 0x4579c3
mov eax, 0xffffff
call fcn.004533e8
pushal
mov dx, 0x8020
mov eax, dword [ebp - 0x14]
call fcn.00430db8
mov esi, fcn.004536e0
mov eax, 0x400000dc
push 3
pop edx
call esi
mov edx, dword [ebp - 0x30]
and dword [edx + 0xc], 0
push ebp
xor edi, edi
or edx, 0xffffffff
mov eax, dword [ebp - 0x14]
call fcn.00430c44
lea ebx, [edi + edi*8]
lea ebx, [ebx + ebx*2 + 0x1f]
lea edx, [ebx - 0x1b]
push 0x28
pop eax
call esi
mov eax, dword [ebp - 0x14]
inc dword [eax]
push 0x28
pop eax
add edx, 0xd
call esi
mov eax, dword [ebp - 0x14]
and dword [eax], 0
lea edx, [edi + 1]
call fcn.00430c44
xor eax, eax
call fcn.00453824
neg eax
add eax, 0x20
lea edx, [ebx - 0x15]
call esi
push 0x12
push ebx
push dword [ebp - 0x1c]
call fcn.00453304
inc edi
cmp edi, 0xf
jbe 0x457873
xor ebx, ebx
push ebx
lea edi, [bx + 0x1b4]
push edi
push dword [ebp - 0x1c]
call fcn.00453304
push 0x34
push ebx
push edi
call fcn.00453324
mov edi, ebx
sub edi, dword [0x673876]
or edi, edi
js 0x457926
lea eax, [edi + 0x34]
push eax
push 0x1b5
push 0x1bb
call fcn.00453324
mov eax, dword [ebp - 0x14]
and dword [eax], 0
mov edx, ebx
call fcn.00430c44
xor eax, eax
call fcn.00453824
shr eax, 1
neg eax
lea eax, [eax + edi + 0x34]
mov edx, 0x1bc
call esi
add ebx, 0xc8
cmp edi, dword [ebp - 0x1c]
jle 0x4578e4
xor edi, edi
xor esi, esi
cmp esi, dword [0x667ea8]
jae 0x4579ac
mov eax, esi
sub eax, dword [0x673876]
cmp eax, dword [ebp - 0x1c]
jg 0x4579ac
or eax, eax
js 0x4579a9
mov dword [ebp - 0x40], eax
xor ebx, ebx
mov eax, dword [0x4e917c]
imul edx, esi, 0x408
lea eax, [eax + edx + 0x14131]
lea edx, [ebx*2 - 2]
sub eax, edx
mov edx, 0x800000
xor ecx, ecx
bt dword [eax], edi
jae 0x457981
mov edx, 0xff0000
mov cl, 3
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x40]
add eax, 0x35
push eax
imul eax, edi, 0x1b
imul edx, ebx, 0xd
lea eax, [eax + edx + 0xb]
lea edx, [eax + ecx]
sub eax, ecx
push eax
push edx
call fcn.00453324
xor ebx, 1
jne 0x457953
inc esi
jmp 0x457935
inc edi
cmp edi, 0xf
jbe 0x457933
pop ecx
popal
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x52
jne 0x457bc0
mov eax, dword [0x667e90]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov dword [eax + 0xc], 0xfffffc
push eax
call fcn.004533d4
pop ecx
xor eax, eax
mov dword [ecx + 8], eax
cdq
mov dword [ebp + 0x10], eax
bt dword [0x2e8d9ec], eax
jb 0x457a04
inc edx
inc al
jns 0x4579fa
mov dword [ebp - 0xc], edx
pushal
imul esi, dword [ebp + 0x10], 0xeb
push ebp
cmp dword [ebp - 0xc], 0
je 0x457acf
push 0x400
push 0x4ede90
call sub.kernel32.dll_RtlZeroMemory
mov ax, 0x361
call fcn.00430ce8
mov edi, eax
mov ax, 0x363
call fcn.00430ce8
cmp eax, edi
jae 0x457a46
xchg edi, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
xor ebx, ebx
bt dword [0x2e8d9ec], ebx
jb 0x457a80
mov edx, edi
imul ecx, edx, 0x408
add ecx, dword [0x4e917c]
cmp byte [ebp + 0x10], bh
jne 0x457a6b
inc ecx
movzx eax, byte [ecx + ebx*2 + 0x14131]
inc dword [eax*4 + 0x4ede90]
inc edx
cmp edx, dword [ebp - 0x28]
jbe 0x457a59
inc bl
jns 0x457a4e
neg edi
add edi, dword [ebp - 0x28]
inc edi
imul edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0xc000
xor ebx, ebx
mov eax, dword [ebx*4 + 0x4ede90]
or eax, eax
je 0x457acb
imul eax, eax, 0x64
cdq
add eax, eax
div edi
or eax, eax
jne 0x457ab2
inc eax
lea ecx, [ebx + ebx*2 + 0x2c]
push ecx
neg eax
lea edx, [si + 0xd3]
add eax, edx
push eax
inc ecx
inc ecx
push ecx
dec edx
push edx
call fcn.00453294
inc bl
jne 0x457a9a
mov edi, fcn.004536e0
xor ebx, ebx
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], ebx
cmp ebx, 5
ja 0x457b17
mov eax, dword [ebp - 0x14]
and dword [eax], 0
imul edx, ebx, 0x14
call fcn.00430c44
xor eax, eax
call fcn.00453824
neg eax
add eax, 0x26
push 0x28
imul edx, ebx, 0xffffffd8
lea edx, [edx + esi + 0xd3]
push edx
add edx, 0xfffffff8
call edi
push 0x32d
call fcn.00453304
mov eax, 0xbac48
mul ebx
mov ecx, 0x3733
div ecx
add eax, 0x2c
mov dword [ebp - 8], eax
push eax
push esi
lea eax, [si + 0xd6]
push eax
call fcn.00453324
mov eax, dword [ebp - 0x14]
and dword [eax], 0
mov edx, ebx
call fcn.00430c44
xor eax, eax
call fcn.00453824
shr eax, 1
neg eax
add eax, dword [ebp - 8]
lea edx, [si + 0xd9]
call edi
inc ebx
cmp ebx, 0xe
jbe 0x457adc
pop eax
mov ebx, fcn.00430db8
mov eax, dword [ebp - 0x14]
push eax
mov dx, 0x831a
call ebx
push 0xa
pop eax
lea edx, [esi + 0x17]
call edi
pop eax
push eax
mov dx, 0x86c3
call ebx
mov eax, 0x2fb
lea edx, [si + 0xda]
call edi
pop eax
mov dx, 0x86c2
call ebx
mov edx, dword [ebp + 0x10]
inc edx
call fcn.00430c44
lea eax, [esi + 0x400000aa]
push 2
pop edx
call edi
xor dword [ebp + 0x10], 1
jne 0x457a0c
popal
call fcn.0045349c
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x51
jne 0x457d0d
pushal
mov esi, dword [0x667e90]
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x18]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi], eax
mov ax, 0x33d
call fcn.004312f4
add eax, 6
bt dword [0x4ea411], eax
setb byte [ebp - 0xc]
push ebp
xor edi, edi
xor ebx, ebx
lea ecx, [edi + ebx*8]
mov dword [ebp - 4], ecx
mov eax, 0xff0000
mov edx, 0xf0f000
bt dword [0x2e8d9ec], ecx
jae 0x457c21
mov eax, 0xf0fff0
mov edx, 0x606060
bt dword [0x2e8d9fc], ecx
jae 0x457c2f
mov eax, 0xc0c0c0
mov dword [esi + 0xc], eax
mov dword [esi + 8], edx
imul edx, ebx, 0x28
imul eax, edi, 0x19
push edx
push eax
add edx, 0x27
push edx
add eax, 0x18
push eax
call fcn.00453294
mov eax, dword [ebp - 0x14]
push 0xffffffffffffffff
pop edx
sub edx, dword [ebp - 4]
call fcn.00430c44
cmp bh, byte [ebp - 0xc]
jne 0x457c76
mov dl, 0x61
cmp ebx, 8
jb 0x457c71
push 0x3f
pop edx
sub edx, dword [ebp - 4]
call fcn.00430c44
mov dl, 0x62
call fcn.00430e24
cmp byte [esi + 0xc], 0xc0
jne 0x457c8c
mov dword [esi + 8], 0xe0e0e0
jmp 0x457c8c
mov dword [esi + 8], 0xa0a0a0
mov al, 1
call fcn.00453824
shr eax, 1
neg eax
imul edx, ebx, 0x28
lea eax, [eax + edx + 0x1000014]
cdq
cmp byte [esi + 8], 0xe0
sete dl
add eax, edx
imul ecx, edi, 0x19
lea edx, [edx + ecx + 4]
call fcn.004536e0
cmp byte [esi + 8], 0xe0
je 0x457c85
inc ebx
cmp ebx, 0xf
jbe 0x457bfe
inc edi
cmp edi, 7
jbe 0x457bfc
xor edi, edi
mov dword [esi + 0xc], edi
cmp edi, 8
ja 0x457ceb
push 0
imul eax, edi, 0x19
push eax
push 0x280
call fcn.00453304
imul eax, edi, 0x28
push eax
push 1
push 0xc8
call fcn.00453324
inc edi
cmp edi, 0x10
jbe 0x457cd6
pop eax
popal
call fcn.0045349c
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x50
jne 0x457fa1
mov eax, dword [0x667e90]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov dword [eax + 0xc], 0xffffff
push eax
call fcn.004533d4
pop eax
xor edx, edx
mov dword [eax + 0xc], edx
mov dword [eax + 8], edx
pushal
push ebp
push 0x4e
push edx
push 0x1388
call fcn.00453324
mov eax, dword [ebp - 0x1c]
sub eax, 0x50
shr eax, 7
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
shr eax, 1
mov dword [ebp - 8], eax
cdq
lea ecx, [edx + 3]
div ecx
mov dword [ebp - 0x40], eax
xor ebx, ebx
and dword [ebp + 0x14], 0
mov eax, dword [ebp + 0x14]
inc eax
mul dword [ebp - 8]
sub eax, 0x14
mov dword [ebp + 0xc], eax
cmp ebx, 0x7f
ja 0x457e48
mov eax, dword [0x6695f6]
cmp byte [0x4e9192], 0x62
jae 0x457d9f
mov eax, dword [0x667ea8]
dec eax
or eax, eax
js 0x457e48
imul esi, eax, 0x408
add esi, dword [0x4e917c]
mov ax, 0x33d
call fcn.004312f4
shl eax, 7
add eax, ebx
cmp byte [ebp + 0x14], bh
jne 0x457dc7
inc esi
movzx eax, byte [esi + eax*2 + 0x14131]
mul dword [ebp - 0x40]
imul esi, eax, 0x5acb
shr esi, 0x15
mov eax, dword [ebp - 8]
sub eax, 0x19
cmp esi, eax
setg byte [ebp - 0x43]
jle 0x457deb
mov esi, eax
mov byte [ebp - 0x43], dl
cmp esi, 1
jbe 0x457e24
mov eax, 0xc000
test bl, 1
je 0x457e02
mov eax, 0xffff00
mov edx, dword [ebp - 0x30]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0xc]
mul ebx
add eax, 0x4e
push eax
mov edx, dword [ebp + 0xc]
lea ecx, [edx - 1]
sub edx, esi
push edx
add eax, dword [ebp - 0xc]
push eax
push ecx
call fcn.00453294
mov edx, dword [ebp - 0x30]
and dword [edx + 0xc], 0
dec byte [ebp - 0x43]
jns 0x457e48
mov eax, dword [ebp - 0xc]
mul ebx
add eax, 0x4e
push eax
mov edx, dword [ebp + 0xc]
sub edx, esi
push edx
add eax, dword [ebp - 0xc]
push eax
call fcn.00453304
xor esi, esi
test bl, 7
jne 0x457ecc
cmp ebx, 0x7f
jae 0x457ec9
mov ax, 0x33d
call fcn.004312f4
lea ecx, [eax + 6]
mov eax, dword [ebp - 0x14]
lea edx, [ebx + 1]
neg edx
call fcn.00430c44
cmp byte [0x4e9192], 0x63
je 0x457e8c
movzx edx, byte [0x4ea413]
add edx, dword [0x4e917c]
mov dl, byte [edx + 0x2d]
mov byte [0x4ea411], dl
bt dword [0x4ea411], ecx
jb 0x457ead
mov dl, 0x61
cmp ebx, 0x3f
jbe 0x457ea8
lea edx, [ebx - 0x3f]
neg edx
call fcn.00430c44
mov dl, 0x62
call fcn.00430e24
mov edx, 0x2026
call fcn.00430e14
mov eax, dword [ebp - 0xc]
mul ebx
add eax, 0x50
mov edx, dword [ebp + 0xc]
inc edx
inc edx
call fcn.004536e0
add esi, 9
mov eax, dword [ebp - 0xc]
mul ebx
add eax, 0x4e
push eax
mov eax, dword [ebp - 8]
mul dword [ebp + 0x14]
add eax, 5
push eax
mov eax, dword [ebp + 0xc]
add eax, esi
push eax
call fcn.00453324
or ebx, ebx
jne 0x457f1a
mov eax, dword [ebp - 0x14]
mov dx, 0x86c2
call fcn.00430db8
mov edx, dword [ebp + 0x14]
inc edx
call fcn.00430c44
mov eax, dword [ebp - 8]
shr eax, 1
neg eax
add eax, dword [ebp + 0xc]
add eax, 0x40000028
push 0x1e
pop edx
call fcn.004536e0
xor dword [ebp + 0x14], 1
jne 0x457d75
inc ebx
cmp bl, 0x80
jne 0x457d71
xor ebx, ebx
mov eax, ebx
mul dword [ebp - 0x40]
neg eax
lea esi, [eax - 0x14]
xor edi, edi
add esi, dword [ebp - 8]
push 0x48
push esi
mov eax, dword [ebp - 0xc]
shl eax, 7
add eax, 0x4e
push eax
call fcn.00453304
mov eax, dword [ebp - 0x14]
and dword [eax], 0
lea edx, [ebx + ebx*4]
call fcn.00430c44
xor eax, eax
call fcn.00453824
neg eax
add eax, 0x46
lea edx, [esi - 8]
call fcn.004536e0
xor edi, 1
jne 0x457f3c
inc ebx
cmp ebx, 2
jbe 0x457f30
pop eax
popal
mov eax, dword [ebp - 0x14]
mov dx, 0x86c3
call fcn.00430db8
push 0x28
pop eax
lea edx, [eax - 0xf]
call fcn.004536e0
call fcn.0045349c
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x4e
jne 0x458330
mov eax, dword [0x667e90]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov dword [eax + 0xc], 0xffffff
push eax
call fcn.004533d4
pop eax
xor edx, edx
mov dword [eax + 0xc], edx
mov dword [eax + 8], edx
mov ax, 0x32e
call fcn.004312f4
mov byte [ebp - 0x43], al
dec al
jns 0x458063
pushal
push ebp
push 0x5e
mov ebx, dword [ebp - 0x18]
sub ebx, 0x1a
push ebx
mov eax, dword [ebp - 0x1c]
dec eax
push eax
call fcn.00453304
push 0x62
push 0
push ebx
call fcn.00453324
xor ebx, ebx
mov esi, dword [0x6695c4]
neg esi
add esi, ebx
cmp esi, dword [ebp - 0x1c]
jg 0x458061
or esi, esi
js 0x458059
lea eax, [esi + 0x62]
push eax
mov edi, dword [ebp - 0x18]
sub edi, 0x19
push edi
add edi, 3
push edi
call fcn.00453324
mov eax, dword [ebp - 0x14]
and dword [eax], 0
mov edx, ebx
call fcn.00430c44
xor eax, eax
call fcn.00453824
shr eax, 1
neg eax
add eax, esi
cmp eax, 0xfffffffb
jle 0x458059
add eax, 0x62
lea edx, [edi + 1]
call fcn.004536e0
add ebx, 0xc8
jmp 0x458008
pop eax
popal
xor eax, eax
mov dword [ebp + 0xc], eax
mov eax, dword [0x4d4c54]
cmp byte [eax], 0
ja 0x45807c
mov eax, dword [0x4d4d40]
cmp byte [eax], 0
jbe 0x4580a5
mov eax, dword [ebp - 0x14]
push eax
mov ax, 0x324
call fcn.00430ce8
push eax
push 0x148
mov eax, dword [0x671ff3]
push eax
call sub.user32.dll_SendMessageW
mov eax, dword [ebp - 0x14]
call fcn.004309b4
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
add eax, dword [0x4e917c]
movzx edx, byte [eax + 0x1402d]
mov byte [ebp - 0x41], dl
mov al, 0xff
cmp dl, 0x1e
ja 0x4580c5
mov al, byte [edx + 0x4d47e7]
mov byte [ebp - 0x42], al
cmp byte [ebp - 0x43], 1
jne 0x458174
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GlobalFree
push 0xfa0
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov dword [ebp - 0x14], eax
pushal
mov eax, dword [ebp + 0xc]
mov esi, dword [0x4e917c]
lea esi, [esi + eax*2 + 0x14131]
mov ecx, dword [0x667ea8]
jecxz 0x458173
mov bl, byte [ebp - 0x42]
movzx eax, word [esi]
cdq
cmp bl, 5
ja 0x458173
jb 0x458121
mov ax, word [esi + 0x204]
shr eax, 4
add ax, 0x15e
jmp 0x45815b
cmp bl, 3
jb 0x458142
ja 0x45812d
lea edi, [edx + 0xa]
jmp 0x458159
push 0x7d
pop edx
cmp byte [ebp - 0x41], 0xf
jne 0x45813a
mov dx, 0xa50
imul eax, edx
shr eax, 0xd
jmp 0x45815b
cmp bl, 1
je 0x45812d
jb 0x45814e
imul eax, eax, 0x19
jmp 0x45813d
imul eax, eax, 0x93b
mov edi, 0x50000
div edi
mov edx, dword [ebp - 0x14]
inc dword [edx + eax*4 + 0x3e8]
inc ebx
cmp bl, 5
je 0x458106
add esi, 0x408
loop 0x458103
popal
call fcn.00453be8
movzx ecx, byte [ebp - 0x42]
cmp byte [ebp - 0x43], ch
jne 0x458308
pushal
xor ebx, ebx
inc ebx
shl ebx, cl
and dword [ebp - 0x40], 0
mov esi, dword [ebp - 0x40]
add esi, dword [0x6695c4]
cmp esi, dword [0x667ea8]
jae 0x4582a6
imul esi, esi, 0x408
add esi, dword [0x4e917c]
test bl, 0x30
je 0x4581bc
add esi, 0x204
mov eax, dword [ebp + 0xc]
movzx edi, word [esi + eax*2 + 0x14131]
mov esi, dword [ebp - 0x18]
test bl, 0x30
je 0x4581da
shr edi, 1
lea edx, [di - 0x1b8]
push 0xffffffffffffffbd
jmp 0x45821d
test bl, 0x46
je 0x4581fd
cmp byte [ebp - 0x41], 0xf
jne 0x4581ed
imul edx, edi, 0xa50
jmp 0x4581f8
imul edx, edi, 0x19
cmp bl, 4
je 0x4581f8
lea edx, [edx + edx*4]
shr edx, 0xa
jmp 0x45821b
cmp bl, 8
jne 0x45820f
imul eax, edi, 4
cdq
lea ecx, [edx + 5]
div ecx
mov edx, eax
jmp 0x45821b
imul edx, edi, 0x93b
shr edx, 0xf
sub edx, 0x64
push 0xffffffffffffffe5
pop edi
add edi, esi
sub edi, edx
sub esi, 0x1b
cmp edi, esi
jle 0x45822b
mov edi, esi
or edi, edi
jns 0x458231
xor edi, edi
mov dword [ebp + 0x10], edi
mov esi, dword [ebp - 0x30]
add esi, 0xc
mov dword [esi], 0xff0000
cmp bl, 0x10
jne 0x458248
shr dword [esi], 0x10
cmp dword [ebp - 0x40], 0
je 0x458298
pushal
mov esi, dword [ebp + 0x14]
push 1
pop ecx
lea eax, [esi + ecx]
cmp edi, eax
jg 0x458264
dec eax
dec eax
cmp edi, eax
jge 0x45828d
neg ecx
push ebp
mov ebx, dword [ebp - 0x40]
add ebx, 0x63
push ebx
lea eax, [edi + esi]
shr eax, 1
lea edx, [eax + ecx]
inc ecx
jecxz 0x45827a
xchg esi, eax
xchg edi, edx
push edi
push edx
push ebp
dec ebx
push ebx
push eax
push esi
call fcn.00453324
pop eax
call fcn.00453324
pop eax
popal
push edi
mov edi, dword [ebp + 0x14]
call fcn.004582c4
pop edi
mov dword [esi], 0xff0000
call fcn.004582c4
mov dword [ebp + 0x14], edi
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
add eax, 0x63
cmp eax, dword [ebp - 0x1c]
jbe 0x458190
cmp bl, 0x10
jne 0x4582f9
mov bl, 0x40
jmp 0x45818c
popal
jmp 0x458326
mov eax, dword [ecx*2 + 0x4582fc]
cmp cl, 5
ja 0x458326
call fcn.00453a88
cmp ax, 0x103
jne 0x458326
shr dword [ebp - 4], 1
xor al, al
jmp 0x458314
call fcn.0045349c
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x4f
jne 0x458352
mov eax, 0xffffff
call fcn.004533e8
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
pushal
mov edi, dword [ebp - 0x10]
mov al, byte [edi + 0x11]
cmp al, 0x4d
jne 0x458442
mov eax, 0xc0c0ff
call fcn.004533e8
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0xc0c0c0
xor esi, esi
push ebp
xor ebx, ebx
cmp bl, byte [edi + 0x2e]
imul eax, ebx, 0x10
add eax, esi
add eax, dword [edi + 0x25]
bt dword [0x4e919c], eax
jae 0x4583a3
imul eax, esi, 0x39
push eax
imul edx, ebx, 0x1c
push edx
add eax, 0x39
add edx, 0x1c
push eax
push edx
call fcn.00453294
inc ebx
cmp bl, byte [edi + 0x2e]
jb 0x45837a
inc esi
cmp esi, 0xf
jbe 0x458378
mov eax, dword [ebp - 0x30]
xor esi, esi
and dword [eax + 0xc], esi
and dword [eax + 8], esi
imul eax, esi, 0x39
push eax
push 0
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453324
inc esi
cmp esi, 0x10
jbe 0x4583ba
xor ebx, ebx
push 0
imul eax, ebx, 0x1c
push eax
mov eax, dword [ebp - 0x1c]
dec eax
push eax
call fcn.00453304
xor esi, esi
imul edx, ebx, 0xfffffff0
sub edx, esi
dec edx
mov eax, dword [ebp - 0x14]
call fcn.00430c44
cmp byte [edi + 0x2f], bh
je 0x458410
cmp ebx, 3
seta cl
jbe 0x458407
add edx, 0x40
call fcn.00430c44
mov dl, 0x61
add dl, cl
call fcn.00430e24
mov al, 1
call fcn.00453824
shr eax, 1
neg eax
imul edx, esi, 0x39
lea eax, [eax + edx + 0x100001c]
imul edx, ebx, 0x1c
add edx, 7
call fcn.004536e0
inc esi
cmp esi, 0x10
jbe 0x4583e4
inc ebx
cmp bl, byte [edi + 0x2e]
jbe 0x4583d2
pop eax
jmp 0x45859f
sub al, 0x4b
cmp al, 1
ja 0x4585d5
mov byte [ebp - 0x44], al
mov eax, 0xffffff
call fcn.004533e8
mov esi, dword [ebp - 0x30]
add esi, 0xc
xor eax, eax
mov dword [esi], eax
cmp dword [edi + 0x12], eax
jne 0x45846e
mov dword [esi], 0xc0c0c0
push ebp
push eax
push eax
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
xor edx, edx
lea eax, [edx + 0x13]
cmp byte [ebp - 0x44], dl
je 0x4584a7
push eax
push edx
push dword [ebp - 0x18]
call fcn.00453324
mov eax, dword [ebp - 0x1c]
sub eax, 0x14
push eax
push 0
push dword [ebp - 0x18]
call fcn.00453324
jmp 0x4584c2
push edx
push eax
push dword [ebp - 0x1c]
call fcn.00453304
push 0
mov eax, dword [ebp - 0x18]
sub eax, 0x14
push eax
push dword [ebp - 0x1c]
call fcn.00453304
xor ebx, ebx
and dword [esi], 0
test byte [edi + 0x2f], 1
je 0x4584d3
mov dword [esi], 0x808080
mov eax, dword [ebp + 0x14]
test byte [eax + 0x10], 4
jne 0x4584e2
cmp dword [edi + 0x25], 0
jne 0x4584e8
mov dword [esi], 0xc0c0c0
lea eax, [ebx + 6]
lea edx, [ebx - 0xa]
neg edx
mov ecx, fcn.00453324
cmp byte [ebp - 0x44], bh
jne 0x458500
mov ecx, fcn.00453304
xchg edx, eax
push eax
push edx
lea eax, [ebx + 0xa]
push eax
call ecx
and dword [esi], 0
test byte [edi + 0x2f], 2
je 0x458517
mov dword [esi], 0x808080
mov eax, dword [ebp + 0x14]
test byte [eax + 0x10], 4
jne 0x458528
mov eax, dword [edi + 0x25]
cmp eax, dword [edi + 0x12]
jne 0x45852e
mov dword [esi], 0xc0c0c0
lea eax, [ebx + 7]
neg eax
lea edx, [eax + 0x11]
add eax, dword [ebp - 0x1c]
mov ecx, fcn.00453324
cmp byte [ebp - 0x44], bh
jne 0x45854f
mov ecx, fcn.00453304
sub eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x18]
xchg edx, eax
push eax
push edx
lea eax, [ebx + 0xa]
push eax
call ecx
inc ebx
cmp ebx, 6
jbe 0x4584c4
pop eax
cmp dword [edi + 0x12], 0
je 0x45859f
lea edx, [ebp - 0xc]
mov eax, edi
call fcn.00451240
and dword [esi], 0
mov eax, dword [ebp + 0x14]
test byte [eax + 0x10], 4
jne 0x458588
mov edi, fcn.00453294
call fcn.004585af
mov eax, dword [ebp - 0x10]
test byte [eax + 0x2f], 4
je 0x45859f
mov byte [esi + 2], 0xc0
mov edi, fcn.00453344
call fcn.004585af
popal
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
popal
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x48
jne 0x458648
mov eax, 0xc0c0c0
call fcn.004533e8
pushal
mov eax, dword [ebp - 0x30]
push eax
xor edx, edx
push edx
and dword [eax + 8], edx
imul edi, dword [ebp - 0x28], 0x1000
mov ebx, 0x4e93a8
and dword [ebx], edx
lea edx, [edi + 0x2c48b44]
mov eax, ebx
call fcn.00430da0
call fcn.00430a24
push 0x5c
pop edx
cmp dx, word [ebx + eax*2 - 2]
je 0x458625
mov eax, ebx
call fcn.00430e24
lea edx, [edi + 0x2c49344]
call fcn.00430da0
push 0
push eax
call fcn.0045a524
popal
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x3b
jne 0x45882a
pushal
mov edi, dword [ebp - 0x10]
mov esi, fcn.00453d5c
mov ebx, 0x453d44
mov al, 0xc1
call esi
xor eax, eax
call esi
movzx edx, byte [edi + 0x2f]
push edx
mov eax, dword [ebp - 0x18]
dec eax
push eax
mov eax, dword [ebp - 0x1c]
dec eax
push eax
push 0
push edx
push dword [ebp - 0x38]
call sub.gdi32.dll_Rectangle
xor eax, eax
call ebx
mov al, 1
call ebx
mov al, 0x60
call esi
mov esi, 0x453da8
mov ax, 0xc0
call esi
mov ax, 0xfe60
call esi
mov ax, 0xfe22
call esi
mov ax, 0xff12
call esi
xor eax, eax
call ebx
mov al, 0xa0
call fcn.00453d5c
mov ax, 0xffe1
call esi
mov ax, 0xff21
call esi
mov ax, 0xff11
call esi
xor eax, eax
call ebx
pop dword [ebp - 0x1c]
mov eax, 0xc0c0c0
call fcn.004533e8
mov esi, dword [ebp - 0x30]
add esi, 0xc
xor ebx, ebx
cmp bl, byte [edi + 0x31]
jae 0x458723
cmp bl, byte [edi + 0x2e]
je 0x458720
mov dword [esi], 0xb0b0b0
mov eax, 0x483
call fcn.00453f14
mov dword [esi], 0x606060
mov eax, 0x382
call fcn.00453f14
mov ax, 0x3400
call fcn.00453ed8
mov ax, 0x4e01
call fcn.00453ed8
inc ebx
jmp 0x4586e4
push ebp
movzx eax, byte [edi + 0x2f]
dec eax
push eax
push 0
mov eax, dword [ebp - 0x18]
sub eax, 2
push eax
call fcn.00453324
movzx ebx, byte [edi + 0x2e]
mov eax, 0x30080
call fcn.00453f14
mov dword [esi], 0xffec10
xor eax, eax
call fcn.00453ef8
mov dword [esi], 0xfbe812
mov al, 1
call fcn.00453ef8
pop eax
push 0x27
pop ecx
push ecx
imul eax, ecx, 0xfffffff9
sar eax, 1
add al, 0xec
movzx eax, al
mov ah, cl
shl ah, 2
neg ah
dec ah
shl eax, 8
lea eax, [eax + ecx*2 + 0x10]
mov dword [esi], eax
movzx eax, byte [edi + 0x30]
mul ebx
mov edx, eax
mov eax, ecx
pushal
call fcn.004534b0
popal
movzx ecx, byte [edi + 0x30]
lea edx, [edx + ecx + 3]
call fcn.004534b0
pop ecx
dec ecx
jns 0x458764
mov dword [esi], 0xc0c0c0
mov al, byte [edi + 0x2f]
dec eax
call fcn.00453ef8
xor eax, eax
call fcn.00453ed8
mov ax, 0x1a01
call fcn.00453ed8
and dword [esi - 4], 0
xor ebx, ebx
cmp bl, byte [edi + 0x31]
jae 0x45881a
mov ax, 0x829d
call fcn.0045402c
lea edx, [ebx + 1]
call fcn.00430c44
xor eax, eax
bt dword [edi + 0x12], ebx
jae 0x458803
mov dword [esi - 4], 0x707070
movzx eax, byte [edi + 0x30]
mul ebx
lea edx, [eax + 9]
push 0x10
pop eax
call fcn.004536e0
mov eax, 0xd0d0d0
mov dword [esi - 4], eax
movzx eax, byte [edi + 0x30]
mul ebx
lea edx, [eax + 8]
push 0xf
pop eax
call fcn.004536e0
inc ebx
jmp 0x4587c8
popal
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x3a
jne 0x458be5
pushal
mov edi, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 4], eax
mov esi, fcn.00453d5c
mov ebx, 0x453d44
mov al, 0xc1
call esi
xor eax, eax
call esi
movzx edx, byte [edi + 0x30]
inc edx
push edx
mov eax, dword [ebp - 0x18]
dec eax
push eax
mov eax, dword [ebp - 0x1c]
dec eax
push eax
push edx
push 2
push dword [ebp - 0x38]
call sub.gdi32.dll_Rectangle
xor eax, eax
call ebx
mov al, 1
call ebx
mov al, 0x60
call esi
mov esi, 0x453da8
mov ax, 0x190
call esi
mov ax, 0x102
call esi
mov ax, 0xfe22
call esi
mov ax, 0xfe30
call esi
xor eax, eax
call ebx
mov al, 0xa0
call fcn.00453d5c
mov ax, 0x181
call esi
mov ax, 0xff21
call esi
mov ax, 0xff30
call esi
xor eax, eax
call ebx
mov al, 0xc0
call fcn.00453d5c
mov ax, 0x90
call esi
xor eax, eax
call esi
xor eax, eax
call ebx
pop dword [ebp - 0x18]
mov eax, 0xc0c0c0
call fcn.004533e8
mov esi, dword [ebp - 0x30]
add esi, 0xc
xor ebx, ebx
cmp bl, byte [edi + 0x31]
jae 0x45891d
movzx eax, byte [edi + 0x2e]
sub eax, dword [ebp - 4]
cmp ebx, eax
je 0x45891a
mov dword [esi], 0xb0b0b0
xor edx, edx
push edx
mov eax, 0xfc0304
call fcn.00453f14
mov dword [esi], 0x606060
mov eax, 0x1fe0203
call fcn.00453f14
pop eax
call fcn.00453eb0
inc ebx
jmp 0x4588e1
push ebp
push 1
mov dword [esi], 0x606060
movzx eax, byte [edi + 0x30]
push eax
mov eax, dword [ebp - 0x1c]
sub eax, 2
push eax
call fcn.00453304
pop ebp
movzx ebx, byte [edi + 0x2e]
sub ebx, dword [ebp - 4]
js 0x4589c7
cmp bl, byte [edi + 0x31]
jae 0x4589c7
mov eax, 0x20001
call fcn.00453f14
mov dword [esi], 0xc0c0c0
mov al, byte [edi + 0x30]
call fcn.00458bc6
mov dword [esi], 0xffec10
xor eax, eax
call fcn.00458bc6
mov dword [esi], 0xf7e514
mov al, 1
call fcn.00458bc6
mov dword [ebp + 0x10], ebx
xor ebx, ebx
imul ecx, ebx, 0xfffffff9
add cl, 0xec
movzx eax, cl
imul ecx, ebx, 0xfffffff8
add cl, 0xff
mov ah, cl
shl eax, 8
lea eax, [eax + ebx*4 + 0x10]
mov dword [esi], eax
movzx ecx, byte [edi + 0x2f]
mov eax, ecx
mul dword [ebp + 0x10]
inc eax
mov edx, ebx
pushal
call fcn.004534b0
popal
lea eax, [eax + ecx + 2]
call fcn.004534b0
inc ebx
cmp ebx, 0x13
jbe 0x458981
mov ebx, dword [ebp + 0x10]
mov al, 2
call fcn.00453eb0
add esi, 0xfffffffc
xor ebx, ebx
cmp bl, byte [edi + 0x31]
jb 0x4589e1
popal
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
pushal
mov esi, dword [edi + 0x2a]
mov edi, dword [ebp - 0x14]
xor eax, eax
cdq
mov dword [edi], edx
lodsw ax, word [esi]
or ax, ax
je 0x458a0c
cmp ax, 0xd
jne 0x458a01
cmp edx, ebx
je 0x458a0c
inc edx
jmp 0x4589ed
cmp edx, ebx
jne 0x4589ed
stosw word es:[edi], ax
and dword [edi], 0
jmp 0x4589ed
popal
and dword [ebp - 0x40], 0
and dword [esi], 0
cmp word [ebp - 0x28], 0x14a
je 0x458a2f
cmp word [ebp - 0x28], 0x3cf
je 0x458a2f
cmp word [ebp - 0x28], 5
jne 0x458af5
cmp ebx, 1
jbe 0x458b9c
mov eax, 0x801d
call fcn.0045402c
lea edx, [ebx - 1]
call fcn.00430c44
imul eax, dword [ebp - 0x28], 0x32
mov eax, dword [eax + 0x6682e7]
call fcn.0043128c
call fcn.00430e48
imul eax, eax, 0x11
lea edx, [eax + 0x678935]
movzx ecx, byte [ebx + edx + 1]
cmp word [ebp - 0x28], 0x3cf
je 0x458a7b
cmp word [ebp - 0x28], 5
jne 0x458a8a
cmp byte [edx + 0x10], 3
jne 0x458aa1
cmp ebx, 3
ja 0x458aa1
xor ecx, ecx
jmp 0x458aa1
movzx eax, byte [0x66c3b3]
shl eax, 4
add eax, dword [0x4e917c]
mov ecx, dword [eax + ebx + 0x2e]
and ecx, 0x3f
or ecx, ecx
je 0x458b9c
push ecx
mov ax, 0x203
call fcn.00453d08
pop eax
mov ax, word [eax*2 + 0x4d4796]
cmp word [ebp - 0x28], 0x14a
jne 0x458ae1
push eax
mov eax, 0x14b
call fcn.00430e48
add eax, dword [0x4e917c]
cmp byte [eax], 3
pop eax
jne 0x458b8c
jmp 0x458aec
call fcn.004306e0
jne 0x458b8c
mov ax, 0x88a7
jmp 0x458b8c
cmp word [ebp - 0x28], 0x27
je 0x458b17
cmp word [ebp - 0x28], 0x14b
je 0x458b17
cmp word [ebp - 0x28], 0x3ce
je 0x458b17
cmp word [ebp - 0x28], 7
jne 0x458b9c
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.00430c1c
bt dword [edi + 0x12], ebx
jb 0x458ba2
cmp word [ebp - 0x28], 7
jne 0x458b3c
cmp bl, byte [0x678934]
jne 0x458b3c
mov dword [esi], 0xa0
mov ax, 0x203
call fcn.00453d08
cmp word [ebp - 0x28], 7
je 0x458b7a
cmp word [ebp - 0x28], 0x3ce
je 0x458b7a
mov eax, dword [0x4e917c]
movzx eax, byte [eax + ebx]
mov dl, byte [0x4e9192]
cmp dl, 0x63
je 0x458b71
cmp byte [0x4dc51e], 1
jne 0x458b84
movzx eax, byte [0x4ea410]
jmp 0x458b84
imul eax, ebx, 0x11
movzx eax, byte [eax + 0x678945]
mov ax, word [eax*2 + 0x4d47ae]
call fcn.0045402c
mov ax, 0x210
call fcn.00453d08
jmp 0x458bc0
bt dword [edi + 0x12], ebx
jae 0x458bb7
mov dword [esi], 0x707070
mov ax, 0x83fa
call fcn.00453d08
mov dword [esi], 0xd0d0d0
mov ax, 0x82f9
call fcn.00453d08
inc ebx
jmp 0x4589cc
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x11]
cmp al, 0x3c
jb 0x458c34
cmp al, 0x3f
ja 0x458c34
mov eax, 0xc0c0c0
call fcn.004533e8
call fcn.0045349c
call fcn.004534a4
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x11]
mov eax, dword [eax*4 + 0x4d4680]
push eax
push 0
call sub.user32.dll_LoadIconW
push eax
push 0
push 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x18]
push eax
call sub.user32.dll_DrawIcon
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x47
jne 0x458caf
mov eax, 0xffffff
call fcn.004533e8
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0x808080
push ebp
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
pop ecx
mov eax, dword [ebp - 0x10]
xor edx, edx
mov eax, dword [eax + 0x25]
cmp eax, 0xffffffff
mov ecx, 0x3e8
jne 0x458c7f
mov edx, 0xc0c0c0
mov eax, ecx
push edx
mov edx, dword [ebp - 0x30]
pop dword [edx + 0xc]
mov edx, dword [ebp - 0x1c]
push ebp
push 1
push 1
dec edx
dec edx
mul edx
idiv ecx
push eax
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
call fcn.00453294
call fcn.0045349c
call fcn.004534a4
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x35
jne 0x458dca
push eax
call fcn.00452084
pop eax
push ebp
mov eax, dword [ebp + 0x14]
test byte [eax + 0x10], 4
je 0x458cd9
mov eax, 0xc0c0c0
call fcn.004533e8
jmp 0x458d02
mov eax, 0xffffff
call fcn.004533e8
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0xe0e0e0
push 1
push 1
mov eax, dword [ebp - 0x1c]
dec eax
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
call fcn.00453344
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0x808080
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
call fcn.00453784
call fcn.0045349c
call fcn.004534a4
pop eax
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x31], 0
jbe 0x458da7
movzx eax, word [0x4d4a1e]
cmp eax, dword [ebp - 0x28]
je 0x458d6f
cmp word [0x4d4a1e], 0
je 0x458d53
call sub.user32.dll_DestroyCaret
push 0x10
push 1
push 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_CreateCaret
movzx eax, word [ebp - 0x28]
mov word [0x4d4a1e], ax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x2e]
call fcn.0045a2a4
mov dword [ebp + 0x10], eax
push 3
mov eax, dword [ebp + 0x10]
add eax, 3
push eax
call sub.user32.dll_SetCaretPos
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_ShowCaret
push 0x15e
call sub.user32.dll_SetCaretBlinkTime
jmp 0x459c91
movzx eax, word [0x4d4a1e]
cmp eax, dword [ebp - 0x28]
jne 0x459c91
call sub.user32.dll_DestroyCaret
mov word [0x4d4a1e], 0
jmp 0x459c91
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x34
jne 0x458f23
mov eax, dword [ebp + 0x14]
test byte [eax + 0x10], 4
jbe 0x458df6
mov eax, 0xc0c0c0
call fcn.004533e8
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0x808080
jmp 0x458e3b
mov eax, 0xe0e0ff
call fcn.004533e8
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0x8080ff
push ebp
push 1
push 1
mov eax, dword [ebp - 0x1c]
sub eax, 2
push eax
mov eax, dword [ebp - 0x18]
sub eax, 2
push eax
call fcn.00453344
pop ecx
xor eax, eax
call fcn.00453584
mov al, 1
call fcn.00453584
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0x80
push ebp
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
pop ecx
call fcn.0045349c
call fcn.004534a4
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x31], 0
jbe 0x458f00
movzx eax, word [0x4d4a1e]
cmp eax, dword [ebp - 0x28]
je 0x458e9e
cmp word [0x4d4a1e], 0
je 0x458e82
call sub.user32.dll_DestroyCaret
push 0x16
push 1
push 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_CreateCaret
movzx eax, word [ebp - 0x28]
mov word [0x4d4a1e], ax
mov eax, dword [ebp - 0x10]
movzx ebx, byte [eax + 0x2e]
movzx eax, bl
shr eax, 7
imul eax, eax, 0x15
mov edx, dword [ebp - 0x10]
mov edx, dword [edx + 0x2a]
lea eax, [edx + eax*4 + 2]
mov edx, ebx
and dl, 0x7f
movzx edx, dl
call fcn.0045a288
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x2e]
shr eax, 7
imul eax, eax, 0x16
add eax, 3
push eax
mov eax, dword [ebp + 0x10]
add eax, 3
push eax
call sub.user32.dll_SetCaretPos
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_ShowCaret
push 0x15e
call sub.user32.dll_SetCaretBlinkTime
jmp 0x459c91
movzx eax, word [0x4d4a1e]
cmp eax, dword [ebp - 0x28]
jne 0x459c91
call sub.user32.dll_DestroyCaret
mov word [0x4d4a1e], 0
jmp 0x459c91
cmp dword [ebp - 0x28], 0x144
jne 0x45903f
pushal
mov esi, dword [0x667e90]
mov dword [ebp - 0x30], esi
lodsd eax, dword [esi]
mov dword [ebp - 0x1c], eax
lodsd eax, dword [esi]
mov dword [ebp - 0x1a], eax
push ebp
xor ebx, ebx
xor edi, edi
and dword [esi + 4], 0
imul eax, ebx, 0x37
push eax
imul edx, edi, 0x1a
push edx
add eax, 0x36
push eax
add edx, 0x19
push edx
call fcn.00453344
mov dword [esi + 4], 0xc0c0c0
movzx ecx, byte [0x2e96fa4]
shl ecx, 0xc
imul edx, edi, 0x10
add edx, ebx
add edx, ecx
mov ecx, dword [0x4d4a04]
mov al, byte [ecx + edx + 0x2a8f9f0]
mov byte [ebp - 0x44], al
or al, al
je 0x458f93
mov dword [esi + 4], 0xffff80
cmp al, 0x80
setae byte [ebp - 0x43]
jb 0x458fa2
mov dword [esi + 4], 0xc0c0c0
imul eax, ebx, 0x37
inc eax
push eax
imul edx, edi, 0x1a
inc edx
push edx
add eax, 0x34
push eax
add edx, 0x17
push edx
call fcn.00453294
imul eax, edi, 0xfffffff0
sub eax, ebx
dec eax
call fcn.00454038
and dword [esi], 0
cmp byte [ebp - 0x43], 0
je 0x458ff9
mov dword [esi], 0x808080
xor eax, eax
call fcn.00453824
neg eax
add eax, 0x37
shr eax, 1
imul edx, ebx, 0x37
lea eax, [eax + edx + 1]
imul edx, edi, 0x1a
add edx, 7
call fcn.004536e0
mov dword [esi], 0xe0e0e0
mov al, byte [ebp - 0x44]
call fcn.004530dc
xor eax, eax
call fcn.00453824
neg eax
add eax, 0x37
shr eax, 1
imul edx, ebx, 0x37
add eax, edx
imul edx, edi, 0x1a
add edx, 6
call fcn.004536e0
inc edi
cmp edi, 0x12
jbe 0x458f47
inc ebx
cmp ebx, 0xf
jbe 0x458f45
call fcn.0045349c
pop eax
popal
jmp 0x459c91
cmp dword [ebp - 0x28], 6
jne 0x45907f
mov eax, dword [0x667e90]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], edx
movzx ecx, byte [0x4d4a08]
push dword [ecx*4 + 0x4d4760]
pop dword [eax + 0xc]
and dword [eax + 8], 0
call fcn.004533d4
mov eax, 0x2e7a10c
mov dword [ebp - 0x10], eax
jmp 0x457001
pushal
mov esi, dword [ebp - 0x10]
movzx eax, byte [esi + 0x18]
mov eax, dword [eax*4 + 0x4d473c]
mov dword [ebp + 0x10], eax
movzx esi, byte [esi + 0x11]
mov ebx, dword [ebp + 0x14]
push ebp
mov edx, fcn.004533e8
mov eax, 0xc0c0c0
cmp esi, 0x55
jne 0x4590a9
nop
cmp esi, 0x38
je 0x4590b7
cmp esi, 0x39
jne 0x459157
call edx
cmp dword [ebp - 0x28], 0x3ab
je 0x45931f
call fcn.00459146
test byte [ebx + 0x10], 4
jne 0x4590eb
mov dword [edi + 0xc], 0xe0e0e0
push 1
push 9
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
mov dword [edi + 0xc], 0x808080
push 0
push 8
mov eax, dword [ebp - 0x1c]
dec eax
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
call fcn.00453344
mov dword [edi + 0xc], 0xc0c0c0
mov al, 1
call fcn.00453824
push 0x14
push 8
add eax, 0x1e
cmp esi, 0x39
jne 0x459124
add eax, 0x14
push eax
push 9
call fcn.00453294
test byte [ebx + 0x10], 4
je 0x459139
mov dword [edi + 8], 0x808080
mov eax, 0x1000019
push 2
pop edx
jmp 0x45931a
cmp esi, 0x37
jne 0x459166
mov eax, dword [ebp + 0x10]
call edx
jmp 0x45931f
cmp esi, 0x55
ja 0x4592da
cmp esi, 0x53
jb 0x4592da
mov eax, 0xffffff
call edx
mov edi, dword [ebp - 0x30]
and dword [edi + 0xc], 0
cmp esi, 0x55
jne 0x459212
mov eax, dword [ebp - 0x14]
mov dx, 0x8020
call fcn.00430db8
xor eax, eax
call fcn.00453824
shr eax, 1
add eax, 0x400000a8
push 3
pop edx
call fcn.004536e0
push 0
push 0
push 0x2d
call fcn.00453304
push 0
push 0x150
push 0x2d
call fcn.00453304
push 0
push 0
push 0x150
call fcn.00453324
xor edi, edi
inc edi
mov eax, dword [ebp - 0x14]
mov edx, edi
neg edx
call fcn.00430c44
xor eax, eax
call fcn.00453824
neg eax
add eax, 0x29
imul edx, edi, 0x15
push 0x14
push edx
sub edx, 0x12
call fcn.004536e0
push 0x2d
call fcn.00453304
cmp edi, 0x10
jb 0x4591da
jmp 0x45931f
mov edi, 0x2d0
cmp esi, 0x53
jne 0x45927a
push 0
push 0
push edi
call fcn.00453304
push 0
push 0x19
push edi
call fcn.00453304
xor edi, edi
jmp 0x459262
mov eax, dword [ebp - 0x14]
mov dx, 0x801d
call fcn.00430db8
mov edx, edi
call fcn.00430c44
xor eax, eax
call fcn.00453824
shr eax, 1
imul edx, eax, 0xffffffff
imul eax, edi, 0x3c
lea eax, [eax + edx - 0x1e]
push 5
pop edx
call fcn.004536e0
imul eax, edi, 0x3c
push eax
push 0
push 0x19
call fcn.00453324
inc edi
cmp edi, 0xc
jbe 0x459234
jmp 0x45931f
push 0
push 0x14
push edi
call fcn.00453304
mov ebx, dword [ebp - 0x28]
sub ebx, 0x84
shl ebx, 4
xor edi, edi
jmp 0x4592c5
mov eax, dword [ebp - 0x14]
lea edx, [ebx + edi]
mov edx, dword [edx*4 + 0x667ebc]
or edx, edx
je 0x4592c5
call fcn.00430c44
xor eax, eax
call fcn.00453824
shr eax, 1
imul edx, eax, 0xffffffff
imul eax, edi, 0x3c
lea eax, [eax + edx - 0x1e]
push 3
pop edx
call fcn.004536e0
imul eax, edi, 0x3c
push eax
push 0
push 0x16
call fcn.00453324
inc edi
cmp edi, 0xc
jbe 0x459294
jmp 0x45931f
call edx
call fcn.00459146
mov eax, dword [ebp + 0x10]
mov dword [edi + 8], eax
xor eax, eax
cmp esi, 0x32
je 0x4592f7
bts eax, 0x18
cmp esi, 0x33
jne 0x45931f
mov esi, eax
test byte [ebx + 0x10], 4
je 0x459317
mov dword [edi + 8], 0x808080
lea eax, [esi + 1]
cdq
inc edx
call fcn.004536e0
mov dword [edi + 8], 0xe0e0e0
mov eax, esi
cdq
call fcn.004536e0
call fcn.0045349c
call fcn.004534a4
pop eax
popal
mov eax, dword [ebp + 0x14]
cmp dword [eax], 2
jne 0x4596cc
lea esi, [eax + 0x1c]
lea edi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x24]
sub dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub dword [ebp - 0x18], eax
mov eax, 0xffffff
call fcn.004533e8
mov eax, dword [ebp + 0x14]
cmp dword [eax + 8], 0
jl 0x4596b9
cmp dword [eax], 3
je 0x4596b9
mov eax, dword [ebp + 0x14]
test byte [eax + 0x10], 0x10
je 0x4593cf
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x22
je 0x4593cf
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x24
je 0x4593cf
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x23
je 0x4593cf
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0xfff0f0
push ebp
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453294
pop ecx
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0xffc0c0
push ebp
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
pop ecx
mov eax, dword [ebp - 0x30]
xor edx, edx
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
push edx
push 0x189
mov eax, dword [eax + 0x14]
push eax
call sub.user32.dll_SendMessageW
cmp dword [ebp - 0x28], 0x325
jne 0x4593fe
call fcn.0045311c
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x24
jne 0x459473
mov eax, dword [ebp - 0x30]
mov dword [eax + 0xc], 0xf0ffff
push ebp
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453294
pop ecx
xor eax, eax
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
add ecx, 0x80
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
inc edx
mov eax, dword [ebp - 0x14]
call fcn.004173d4
mov al, 1
call fcn.00453824
push eax
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 0x4d4af8]
lea eax, [eax + eax*4]
pop edx
sub eax, edx
mov edx, 1
call fcn.004536e0
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 6
jne 0x45942b
jmp 0x4596b9
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x22
jne 0x4594f3
pushal
mov eax, dword [ebp - 0x14]
call fcn.004309b4
mov esi, eax
call fcn.0041731c
mov eax, dword [eax*4 + 0x4d49c0]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0xc], eax
push ebp
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453294
pop eax
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov edx, esi
mov ecx, ebx
call fcn.00417428
movzx edi, word [ebx*2 + 0x4d49e4]
mov al, 0xb
bt eax, ebx
jae 0x4594d4
xor eax, eax
call fcn.00453824
sub edi, eax
cmp ebx, 2
jne 0x4594dd
bts edi, 0x18
mov eax, edi
push 2
pop edx
call fcn.004536e0
inc ebx
cmp ebx, 6
jbe 0x4594b0
popal
jmp 0x4596b9
cmp dword [ebp - 0x28], 0x34a
jne 0x4595ff
pushal
mov eax, dword [ebp - 0x14]
call fcn.004309b4
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 0x30]
mov dword [esi + 8], 0xffffff
mov dword [esi + 0xc], 0x800000
push ebp
xor ebx, ebx
cmp eax, 0xfffffff
jne 0x45956f
mov ax, 0x351
call fcn.004312e4
mov dx, 0x8705
dec eax
js 0x45953b
mov dx, 0x8736
mov eax, dword [ebp - 0x14]
call fcn.00430db8
add dword [ebp - 0x18], 3
xor eax, eax
mov edx, dword [ebp - 0x1c]
inc bh
xor edi, edi
jmp 0x4595c4
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push ebx
call fcn.004524cc
mov ecx, 0x459552
movzx eax, word [ecx + ebx*2]
movzx edx, word [ecx + ebx*2 + 2]
sub edx, 3
lea edi, [eax + 0xa]
cmp ebx, 2
jne 0x4595a6
cmp byte [ebp - 0xb], bh
je 0x4595a6
xor ecx, ecx
call fcn.0045955e
add edi, 0x17c
or ebx, ebx
jne 0x4595ca
mov ecx, dword [ebp - 0x14]
cmp word [ecx], 0
je 0x4595e3
test byte [ebp - 9], 1
jne 0x4595bd
shr dword [esi + 0xc], 8
mov cl, 1
call fcn.0045955e
add edi, 0x1000041
push eax
push 0
push edx
mov eax, dword [ebp - 0x18]
sub eax, 3
push eax
call fcn.00453294
mov eax, edi
cdq
inc edx
call fcn.004536e0
and dword [esi + 8], 0
mov dword [esi + 0xc], 0xffffc0
inc ebx
cmp ebx, 5
jb 0x45956f
pop ebp
popal
jmp 0x4596b9
mov dword [ebp - 4], 5
cmp dword [ebp - 0x28], 0x226
jne 0x459670
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
mov eax, 0xe0e0e0
jecxz 0x459651
cmp byte [0x2e8d8ec], 0x12
jne 0x45962d
cmp ecx, 1
je 0x45964a
inc ecx
jmp 0x45964a
mov cl, byte [ecx + 0x6682b4]
cmp byte [0x2e8d8ec], 9
jne 0x459644
mov cl, byte [ecx + 0x4d48e8]
jmp 0x45964a
mov cl, byte [ecx + 0x4d491a]
mov eax, dword [ecx*4 + 0x4d4744]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x18]
add eax, 3
mov dword [ebp - 4], eax
sub eax, 5
push ebp
push 1
push 1
push eax
push eax
call fcn.00453294
pop eax
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x11], 0x1f
jne 0x45968b
xor eax, eax
call fcn.00453824
mov edx, dword [ebp - 0x1c]
sub edx, eax
sub edx, 0xa
add dword [ebp - 4], edx
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x11]
cmp al, 0x20
jne 0x45969f
xor eax, eax
call fcn.00454088
jmp 0x4596b9
cmp al, 0x21
jne 0x4596ac
mov al, 2
call fcn.00454088
jmp 0x4596b9
mov edx, 2
mov eax, dword [ebp - 4]
call fcn.004536e0
mov eax, dword [ebp - 0x20]
shl eax, 0x10
add eax, dword [ebp - 0x24]
call fcn.00453424
call fcn.004534a4
mov eax, dword [ebp + 0x14]
cmp dword [eax], 3
jne 0x459c91
test byte [eax + 0x11], 0x10
je 0x459c91
pushal
mov ebx, eax
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
push 0x34
pop dword [eax]
push eax
mov esi, dword [edi + 0xc]
push esi
call sub.user32.dll_GetComboBoxInfo
push esi
call sub.user32.dll_GetDC
mov dword [ebp - 0x38], eax
push eax
push esi
lea eax, [ebp - 0x24]
push eax
push esi
call sub.user32.dll_GetClientRect
mov eax, dword [ebp - 0x24]
sub dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub dword [ebp - 0x18], eax
mov eax, 0xc0c0c0
test byte [ebx + 0x10], 4
jne 0x45972a
mov eax, 0xffffff
call fcn.004533e8
mov esi, dword [ebp - 0x30]
add esi, 0xc
xor eax, eax
mov dword [ebp + 0x10], eax
mov dword [esi], eax
mov eax, dword [ebp - 0x28]
push ebp
cmp ax, word [0x6785eb]
jne 0x45978e
mov dword [esi], 0xfff0f0
push 1
push 1
mov eax, dword [ebp - 0x1c]
dec eax
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
call fcn.00453294
and dword [esi], 0
push 1
call sub.user32.dll_GetKeyState
or ah, ah
je 0x45978e
mov byte [esi + 2], 0xc0
push 1
push 1
mov eax, dword [ebp - 0x1c]
dec eax
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
dec eax
push eax
call fcn.00453344
inc dword [ebp + 0x10]
test byte [ebx + 0x10], 0x10
je 0x459798
mov byte [esi + 2], 0xc0
test byte [ebx + 0x10], 4
je 0x4597a4
mov dword [esi], 0x808080
push 0
push 0
mov eax, dword [ebp - 0x1c]
dec eax
push eax
mov eax, dword [ebp - 0x18]
dec eax
push eax
call fcn.00453344
and dword [esi], 0
test byte [ebx + 0x10], 0x10
jne 0x4597d7
mov eax, dword [ebp - 0x28]
cmp ax, word [0x6785eb]
jne 0x4597db
push 1
call sub.user32.dll_GetKeyState
or ah, ah
je 0x4597db
mov byte [esi + 2], 0xc0
test byte [ebx + 0x10], 4
je 0x4597e7
mov dword [esi], 0x808080
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x14]
push edx
push dword [ecx + 0x18]
mov eax, dword [ecx + 0x1c]
add edx, eax
shr edx, 1
mov dword [ebp - 0x40], edx
dec eax
push eax
mov eax, dword [ecx + 0x20]
dec eax
push eax
call fcn.00453344
cmp dword [ebx + 8], 0
jl 0x459893
mov edx, dword [edi + 0x25]
or edx, edx
js 0x459893
mov eax, dword [esi]
mov dword [esi - 4], eax
push dword [ebp - 0x14]
push edx
push 0x148
push dword [edi + 0xc]
call sub.user32.dll_SendMessageW
cmp byte [edi + 0x11], 0x20
jne 0x45983d
mov al, 1
call fcn.00454088
jmp 0x459893
cmp dword [ebp - 0x28], 0x324
jne 0x45984b
call fcn.0045311c
test byte [ebx + 0x10], 4
je 0x459865
mov eax, 0x1000006
push 4
pop edx
call fcn.004536e0
mov dword [esi - 4], 0xe0e0e0
cmp dword [ebp + 0x10], 0
je 0x459886
mov dword [esi - 4], 0xffc0c0
mov eax, 0x1000006
push 4
pop edx
call fcn.004536e0
mov dword [esi - 4], 0xc00000
mov eax, 0x1000005
push 3
pop edx
call fcn.004536e0
test byte [ebx + 0x10], 4
je 0x4598ba
xor edi, edi
mov eax, dword [ebp - 0x40]
add eax, edi
push eax
lea edx, [edi - 0xc]
neg edx
push edx
inc eax
push eax
call fcn.00453304
inc edi
cmp edi, 4
jbe 0x45989b
mov dword [esi], 0xe0e0e0
xor edi, edi
mov eax, dword [ebp - 0x40]
sub eax, edi
push eax
lea edx, [edi - 0xc]
neg edx
push edx
lea eax, [eax + edi*2]
push eax
call fcn.00453304
inc edi
cmp edi, 4
jbe 0x4598bc
pop eax
mov eax, dword [ebp - 0x22]
mov ax, word [ebp - 0x24]
call fcn.00453424
call fcn.004534a4
call sub.user32.dll_ReleaseDC
popal
jmp 0x459c91
cmp word [ebp + 0x10], 0
jne 0x45992b
cmp dword [ebp - 0x2c], 0x2c1
jne 0x45992b
cmp byte [0x4d4a19], 0
jbe 0x459c91
mov eax, 0x2c1
call fcn.00431004
mov eax, dword [0x66831d]
push eax
call sub.user32.dll_SetActiveWindow
jmp 0x459c91
cmp word [ebp + 0x10], 0
je 0x45996f
movzx eax, byte [0x4d4a19]
mov eax, dword [eax*4 + 0x676d74]
cmp eax, dword [ebp - 0x2c]
je 0x45996f
cmp dword [ebp - 0x2c], 0xc8
je 0x45996f
movzx eax, byte [0x4d4a19]
mov eax, dword [eax*4 + 0x676d74]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
mov eax, dword [eax*2 + 0x6682eb]
push eax
call sub.user32.dll_SetActiveWindow
cmp byte [0x4d4a21], 0
je 0x459c91
cmp dword [ebp - 0x2c], 1
jne 0x459c91
mov byte [0x4d4a21], 0
xor eax, eax
mov dword [ebp - 0x40], eax
push 0x677ddc
push 0x3ff
call sub.kernel32.dll_GetCurrentDirectoryW
mov eax, 0x677ddc
call fcn.00430a24
mov dword [ebp + 0x14], eax
push 0x67861c
mov eax, 0x677ddc
mov dx, 0x37a
call fcn.00430db8
push eax
call sub.kernel32.dll_FindFirstFileW
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0xffffffff
je 0x459a7b
mov edx, dword [ebp + 0x14]
mov eax, 0x677ddc
and dword [eax + edx*2 + 2], 0
mov edx, 0x678648
call fcn.00430da0
mov edx, eax
mov al, 3
call fcn.0041a06c
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0xffffffff
je 0x459a72
push 0
lea edx, [ebp - 0x28]
push edx
push 0xc8
push 0x67886c
push eax
call sub.kernel32.dll_ReadFile
cmp dword [ebp - 0x28], 0xc8
jne 0x459a69
mov ecx, 0xc4
lea edx, [0x67886c]
mov al, byte [edx]
inc edx
sub byte [0x678930], al
xor al, 0x68
sub byte [0x678931], al
rol al, 3
sub byte [0x678932], al
not al
rol al, 1
sub byte [0x678933], al
loop 0x459a29
cmp dword [edx], ecx
jne 0x459a69
mov cl, 0xc4
mov al, 0x5f
lea edx, [0x67886c]
xor byte [edx], al
rol al, 1
add al, 0x55
inc edx
loop 0x459a5d
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [ebp + 0x10]
push eax
call sub.kernel32.dll_FindClose
mov edx, 0x6788e8
xor eax, eax
mov byte [edx + 0x47], al
cmp dword [ebp - 0x40], eax
je 0x459a96
cmp byte [edx - 0x10], al
je 0x459a96
cmp byte [edx], al
jne 0x459a9d
inc byte [edx + 0x47]
call fcn.00451060
jmp 0x459aa2
call fcn.00451148
pushal
mov edi, 0x2e90344
push edi
mov esi, dword [0x4d5038]
xor ebx, ebx
lodsb al, byte [esi]
or al, al
je 0x459ac4
cmp al, 0x22
jne 0x459ab1
xor ebx, 1
jne 0x459ab1
lodsb al, byte [esi]
or al, al
jne 0x459ac7
pop edi
jmp 0x459b2e
lodsb al, byte [esi]
movzx eax, al
or al, al
je 0x459ad4
stosw word es:[edi], ax
inc ebx
jmp 0x459ac7
and dword [edi], 0
pop edi
or ebx, ebx
je 0x459b2e
mov esi, ebx
dec esi
js 0x459b11
cmp word [edi + esi*2], 0x5c
jne 0x459ade
and word [edi + esi*2], 0
add esi, esi
je 0x459afd
push esi
push edi
push 0x2e8fb44
call sub.kernel32.dll_RtlMoveMemory
add ebx, ebx
sub ebx, esi
push ebx
lea eax, [edi + esi + 2]
push eax
push edi
call sub.kernel32.dll_RtlMoveMemory
or esi, esi
jne 0x459b20
push 0x2e8fb44
push 0x3ff
call sub.kernel32.dll_GetCurrentDirectoryW
mov byte [0x4ea412], 0x82
xor eax, eax
call fcn.0041ad70
popal
jmp 0x459c91
mov eax, dword [ebp + 0x14]
push 0xf
pop edx
cmp dword [eax], 3
je 0x459b4a
mov dl, 0x14
cmp dword [eax], 2
jne 0x459c91
mov dword [eax + 0x10], edx
jmp 0x459c91
cmp dword [ebp - 0x2c], 1
jne case.0x454394.517
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], 0x2ee
mov dword [eax + 0x18], 0x3ca
mov eax, dword [ebp + 0x14]
mov edx, dword [0x678611]
mov dword [eax + 0x20], edx
mov edx, dword [0x678615]
mov dword [eax + 0x24], edx
jmp 0x459c91
cmp byte [ebp - 0x31], 0
jne 0x459b9f
push 0
call sub.gdi32.dll_GetStockObject
mov dword [ebp - 0x8c], eax
jmp 0x459c91
mov eax, dword [0x2e8fb40]
mov dword [ebp - 0x8c], eax
jmp 0x459c91
cmp dword [ebp - 0x2c], 1
jne case.0x454394.517
pushal
mov edi, 0x2e9b986
lea esi, [edi + 0x16]
mov eax, 0x2e96b44
call fcn.00459bf1
xor ebx, ebx
mov eax, ebx
shl eax, 0xc
push eax
add eax, 0x2e91b44
call fcn.00459bf1
pop eax
add eax, 0x2e92344
call fcn.00459bf1
inc ebx
cmp ebx, 5
jb 0x459bce
jmp 0x459c0d
mov al, byte [0x4d4a08]
mov ah, byte [0x4d4a09]
mov dword [esi], eax
inc esi
inc esi
sub edi, 0x16
mov eax, edi
mov dl, 0xec
add byte [eax], dl
rol byte [eax], 3
add dl, 0x11
inc eax
cmp eax, esi
jbe 0x459c23
sub esi, edi
mov al, 2
mov edx, 0x676dd4
call fcn.0041a06c
cmp eax, 0xffffffff
je 0x459c57
push eax
push 0
lea edx, [ebp + 0x10]
push edx
push esi
push edi
push eax
call sub.kernel32.dll_WriteFile
call sub.kernel32.dll_CloseHandle
push 0
call sub.user32.dll_PostQuitMessage
popal
jmp 0x459c91
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
mov edx, sub.user32.dll_DefWindowProcW
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x10], 0
je 0x459c89
cmp byte [eax + 0x10], 2
je 0x459c89
mov edx, 0x409738
push dword [eax + 0x21]
call edx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_GlobalFree
mov eax, dword [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10