Function at 0x40bdd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
xor edx, edx
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2ac
mov dword [ebp + eax - 0x194], edx
add eax, 4
cmp eax, 0x1c
jb 0x40bde0
mov dword [esp], 0
mov dword [ebp - 0x19c], 3
mov dword [ebp - 0x178], str.Window_Class
mov dword [ebp - 0x198], 0x4016a0
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov dword [esp + 4], 0x37
mov dword [esp], eax
call sub.USER32.dll_LoadIconA
mov dword [ebp - 0x188], eax
sub esp, 8
lea eax, [ebp - 0x19c]
mov dword [esp], eax
call sub.USER32.dll_RegisterClassA
mov eax, dword [ebp + 8]
sub esp, 4
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x1e0
mov dword [esp + 0x18], 0x168
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x10], 0x80000000
mov dword [esp + 0xc], 0x10cf0000
mov dword [esp + 8], str.Simple_Highligher
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [ebp - 0x254], eax
mov dword [esp], eax
call sub.USER32.dll_GetDC
lea ecx, [ebp - 0x11c]
sub esp, 4
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x114]
mov byte [esp + 8], 0
mov dword [esp + 4], 0x4c32fa
mov dword [esp], str.font.txt
mov dword [ebp - 0x11c], eax
call fcn.004a1960
lea eax, [ebp - 0x11c]
sub esp, 0xc
mov dword [esp], eax
call fcn.004024a0
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40bf19
mov dword [esp], eax
call fcn.004b45e0
mov byte [esp + 8], 0
lea eax, [ebp - 0x114]
lea ecx, [ebp - 0x11c]
mov dword [esp + 4], 0x4c211d
mov dword [esp], 0x4c211d
mov dword [ebp - 0x11c], eax
call fcn.004a1960
mov edi, dword [0x50a104]
sub esp, 0xc
cmp edi, dword [0x50a108]
je 0x40dde3
lea eax, [edi + 8]
lea ecx, [ebp - 0x114]
mov dword [edi], eax
mov eax, dword [ebp - 0x11c]
cmp eax, ecx
je 0x40e655
mov dword [edi], eax
mov eax, dword [ebp - 0x114]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x118]
add edi, 0x18
mov dword [edi - 0x14], eax
mov dword [0x50a104], edi
mov ebx, dword [0x50a100]
mov esi, edi
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e153
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], esi
cmp edi, ebx
je 0x40e6d3
mov esi, eax
lea esi, [esi]
nop
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40c018
lea ebx, [ebp - 0x23c]
mov dword [ebp - 0x238], esi
mov dword [esp], ebx
call fcn.004047f0
mov ebx, dword [ebp - 0x238]
mov esi, dword [ebp - 0x23c]
cmp ebx, esi
je 0x40c086
lea esi, [esi]
nop
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40c079
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40c068
mov esi, dword [ebp - 0x23c]
test esi, esi
je 0x40c092
mov dword [esp], esi
call fcn.004b45e0
movzx eax, byte [0x50a198]
mov ecx, dword [ebp + 0x10]
mov dword [0x50a1b0], 0
mov dword [0x50a10c], 0
mov byte [ebp - 0x258], al
lea eax, [ebp - 0x114]
mov dword [ebp - 0x11c], eax
mov eax, 0xffffffff
test ecx, ecx
je 0x40c0d9
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
add eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x11c]
lea edi, [ebp - 0x114]
mov byte [esp + 8], 0
mov dword [esp], eax
call fcn.004a1960
mov eax, dword [ebp - 0x11c]
mov ebx, dword [ebp - 0x118]
sub esp, 0xc
cmp eax, edi
je 0x40c114
mov dword [esp], eax
call fcn.004b45e0
test ebx, ebx
jne 0x40dc5e
lea esi, [esi]
cmp byte [0x4c0010], 0
je 0x40d0d8
lea esi, [esi]
mov eax, dword [ebp - 0x254]
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x1b8]
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.USER32.dll_PeekMessageA
sub esp, 0x14
mov ebx, eax
test eax, eax
je 0x40c6c0
mov eax, dword [ebp - 0x1b4]
cmp eax, 0x20a
ja case.0x40c18f.515
cmp eax, 0x1ff
jbe 0x40c298
sub eax, 0x200
cmp eax, 0xa
ja case.0x40c18f.515
jmp dword [eax*4 + 0x4c3340]
mov esi, dword [ebp - 0x260]
lea eax, [ebp - 0x174]
mov dword [ebp - 0x170], esi
mov dword [esp], eax
call fcn.004047f0
mov ebx, dword [ebp - 0x170]
mov esi, dword [ebp - 0x174]
cmp ebx, esi
je 0x40c1de
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40c1d1
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40c1c0
mov esi, dword [ebp - 0x174]
test esi, esi
je case.0x40c18f.515
mov dword [esp], esi
call fcn.004b45e0
lea eax, [ebp - 0x1b8]
mov dword [esp], eax
call sub.USER32.dll_TranslateMessage
lea eax, [ebp - 0x1b8]
sub esp, 4
mov dword [esp], eax
call sub.USER32.dll_DispatchMessageA
sub esp, 4
jmp 0x40c130
cmp word [ebp - 0x1ae], 0
movzx eax, byte [0x50a19a]
jle 0x40cad0
test al, al
je 0x40d0e8
fld dword [0x50a19c]
fsub dword [0x4c000c]
fstp dword [0x50a19c]
jmp 0x40c130
mov byte [0x50a198], 0
jmp 0x40c130
mov byte [0x50a198], 1
jmp 0x40c130
mov byte [0x50a199], 0
jmp 0x40c130
mov byte [0x50a199], 1
jmp 0x40c130
mov eax, dword [ebp - 0x1ac]
movzx edx, ax
shr eax, 0x10
mov dword [0x50a1ac], edx
mov dword [0x50a1a8], eax
jmp 0x40c130
cmp eax, 0x101
je 0x40c130
cmp eax, 0x102
jne 0x40c513
lea eax, [ebp - 0x114]
mov edx, dword [0x50a160]
lea ecx, [ebp - 0x11c]
movzx ebx, byte [ebp - 0x1b0]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a15c]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x11c]
sub esp, 8
test edx, edx
je 0x40cab0
mov eax, ecx
add edx, ecx
jmp 0x40c30b
add eax, 1
cmp edx, eax
je 0x40cab0
cmp bl, byte [eax]
jne 0x40c300
lea eax, [ebp - 0x114]
cmp ecx, eax
je 0x40c321
mov dword [esp], ecx
call fcn.004b45e0
mov eax, dword [0x50a114]
mov edx, dword [0x50a0ec]
movsx ecx, byte [ebp - 0x1b0]
cmp eax, edx
ja 0x40f048
mov dword [esp + 0xc], ecx
mov ecx, 0x50a0e8
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004a1c50
mov eax, dword [0x50a114]
mov ecx, dword [0x50a1a4]
sub esp, 0x10
add eax, 1
mov dword [0x50a114], eax
sub eax, ecx
add eax, 1
imul eax, dword [0x50a158]
imul eax, dword [0x4c0004]
mov edx, eax
movzx eax, byte [0x50a18c]
imul eax, dword [0x50a190]
add eax, edx
cmp eax, dword [0x50a1f0]
jle 0x40c3a8
add ecx, 1
mov dword [0x50a1a4], ecx
lea eax, [ebp - 0x114]
mov edx, dword [0x50a0ec]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a0e8]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x50a110]
mov dword [esp], eax
call fcn.00402a30
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40c405
mov dword [esp], eax
call fcn.004b45e0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40d330
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], esi
cmp edi, ebx
je 0x40dc53
mov esi, eax
nop
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40c490
lea eax, [ebp - 0x224]
mov dword [ebp - 0x220], esi
mov dword [esp], eax
call fcn.004047f0
mov ebx, dword [ebp - 0x220]
mov esi, dword [ebp - 0x224]
cmp ebx, esi
je 0x40c4fe
lea esi, [esi]
nop
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40c4f1
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40c4e0
mov esi, dword [ebp - 0x224]
test esi, esi
je 0x40c130
mov dword [esp], esi
call fcn.004b45e0
jmp 0x40c130
cmp eax, 0x100
jne case.0x40c18f.515
mov eax, dword [ebp - 0x1b0]
mov dword [0x50a10c], 0
cmp eax, 0x11
je 0x40c130
cmp eax, 0xd
je 0x40d400
cmp eax, 0x20
je 0x40df23
cmp eax, 9
je 0x40e162
cmp eax, 8
je 0x40d5b3
cmp eax, 0x2e
je 0x40d73e
cmp eax, 0x26
je 0x40db3f
cmp eax, 0x28
je 0x40de20
cmp eax, 0x25
je 0x40e461
cmp eax, 0x27
je 0x40e4fe
cmp eax, 0x4f
je 0x40e587
cmp eax, 0x46
je 0x40e5ae
cmp eax, 0x53
je 0x40e5d5
cmp eax, 0x56
je 0x40e5fc
cmp eax, 0x48
je 0x40e623
cmp eax, 0x54
je 0x40e67e
cmp eax, 0x4c
je 0x40e710
cmp eax, 0x4b
je 0x40e742
cmp eax, 0x4a
je 0x40e799
cmp eax, 0x52
je 0x40e7bc
cmp eax, 0x47
je 0x40e802
cmp eax, 0xbb
je 0x40e7df
cmp eax, 0xbd
je 0x40e6de
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e4e0
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], esi
cmp edi, ebx
je 0x40c196
mov esi, eax
lea esi, [esi]
nop
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40c690
jmp 0x40c19c
call sub.msvcrt.dll_clock
mov dword [ebp - 0x260], eax
fild dword [ebp - 0x260]
fild dword [0x50a020]
fadd dword [0x50a024]
fxch st(1)
fcompp
fnstsw ax
sahf
jbe 0x40c120
add dword [0x50a1b0], 1
lea edi, [ebp - 0x114]
add dword [0x50a10c], 1
call sub.msvcrt.dll_clock
mov dword [esp + 0xc], 0x4c333a
mov dword [0x50a020], eax
mov eax, dword [0x50a104]
sub eax, dword [0x50a100]
mov dword [esp + 8], 0x10
sar eax, 3
mov dword [esp + 4], 0x401800
imul eax, eax, 0xaaaaaaab
mov dword [0x50a024], 0x41200000
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.0042c260
mov esi, dword [0x50a158]
imul esi, dword [0x4c0004]
imul esi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x11c]
add esi, 0x12
mov dword [0x50a190], esi
cmp eax, edi
je 0x40c785
mov dword [esp], eax
call fcn.004b45e0
mov esi, dword [0x50a190]
movzx edi, byte [0x50a18c]
fld dword [0x50a1a0]
imul esi, edi
cmp byte [0x50a19a], 0
mov dword [0x50a190], esi
je 0x40d118
fadd dword [0x50a19c]
mov eax, dword [0x50a104]
mov dword [ebp - 0x25c], 0
sub eax, dword [0x50a100]
mov edx, dword [0x50a154]
sar eax, 3
mov ecx, dword [0x4c0004]
imul eax, eax, 0xaaaaaaab
fst dword [0x50a1a0]
mov dword [ebp - 0x260], eax
fild qword [ebp - 0x260]
fild dword [0x50a1ec]
mov dword [ebp - 0x260], edx
fld st(1)
fsub st(3)
fild dword [ebp - 0x260]
mov dword [ebp - 0x260], ecx
fmulp st(1)
fild dword [ebp - 0x260]
fmulp st(1)
fxch st(1)
fcom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0x40c844
fstp st(2)
fxch st(1)
mov dword [0x50a19c], 0
imul edx, ecx
mov dword [ebp - 0x260], edx
fild dword [ebp - 0x260]
fdivp st(1)
fsubp st(1)
fst dword [0x50a1a0]
jmp 0x40c848
fstp st(0)
fstp st(0)
fldz
fcom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0x40d733
fstp st(0)
fld qword [0x4c3378]
fmul dword [0x50a19c]
fstp dword [ebp - 0x260]
fld dword [ebp - 0x260]
cmp byte [0x50a199], 0
fstp dword [0x50a19c]
jne 0x40d13d
cmp byte [0x50a198], 1
jne 0x40c91f
cmp byte [ebp - 0x258], 0
jne 0x40c91f
cmp byte [0x50a197], 0
je 0x40c91f
fnstcw word [ebp - 0x24a]
mov eax, dword [0x4c0004]
fild dword [0x50a1a8]
mov edx, dword [0x50a104]
sub edx, dword [0x50a100]
mov dword [ebp - 0x258], eax
imul eax, dword [0x50a154]
sar edx, 3
imul edx, edx, 0xaaaaaaab
mov dword [ebp - 0x260], eax
fild dword [ebp - 0x260]
movzx eax, word [ebp - 0x24a]
fdivp st(1)
or ah, 0xc
mov word [ebp - 0x24c], ax
fadd dword [0x50a1a0]
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x260]
fldcw word [ebp - 0x24a]
mov eax, dword [ebp - 0x260]
cmp eax, edx
jb 0x40d8b3
movzx edx, byte [0x50a196]
mov edi, 0x66666667
mov esi, 0x51eb851f
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, edx
shl eax, 0x18
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [0x50a1ec]
mov dword [esp + 0xc], eax
mov eax, dword [0x50a1f0]
mov dword [esp + 8], eax
call fcn.00401b90
mov eax, dword [0x50a104]
cmp dword [0x50a100], eax
jne 0x40ca82
jmp 0x40caf0
xor ecx, ecx
cmp ebx, eax
setne cl
sub ecx, 1
and ecx, 0xffeeeeef
add ecx, 0xeeeeee
cmp byte [0x50a195], 0
je 0x40c9e7
mov eax, edi
imul dword [0x50a1b0]
mov eax, dword [0x50a1b0]
sar eax, 0x1f
sar edx, 2
sub edx, eax
mov eax, edx
mov dword [ebp - 0x260], edx
imul esi
mov eax, dword [ebp - 0x260]
sar eax, 0x1f
sar edx, 5
sub edx, eax
mov eax, dword [ebp - 0x260]
imul edx, edx, 0x64
sub eax, edx
lea edx, [eax - 0x32]
mov eax, edx
sar eax, 0x1f
xor edx, eax
sub edx, eax
lea ecx, [ecx + edx + 0x32]
fnstcw word [ebp - 0x24a]
mov eax, dword [0x50a154]
mov dword [esp + 0x10], ecx
imul eax, dword [0x4c0004]
mov dword [ebp - 0x260], ebx
add ebx, 1
fild dword [ebp - 0x260]
fsub dword [0x50a1a0]
fild dword [0x50a154]
movzx edx, byte [0x50a18c]
mov dword [esp + 0xc], eax
mov eax, dword [0x50a1f0]
mov dword [esp + 8], eax
movzx eax, word [ebp - 0x24a]
fmulp st(1)
fild dword [0x4c0004]
or ah, 0xc
mov word [ebp - 0x24c], ax
mov eax, dword [0x50a190]
fmulp st(1)
sub eax, 6
fldcw word [ebp - 0x24c]
fistp dword [esp + 4]
fldcw word [ebp - 0x24a]
imul eax, edx
mov dword [esp], eax
call fcn.00401b90
mov eax, dword [0x50a104]
sub eax, dword [0x50a100]
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp eax, ebx
jbe 0x40caf0
cmp byte [0x50a196], 0
mov eax, dword [0x50a110]
jne 0x40c980
xor ecx, ecx
cmp ebx, eax
sete cl
sub ecx, 1
and ecx, 0xffe5e5e6
add ecx, 0x333333
jmp 0x40c996
lea eax, [ebp - 0x114]
cmp ecx, eax
je 0x40c130
mov dword [esp], ecx
call fcn.004b45e0
jmp 0x40c130
test al, al
je 0x40d503
fld dword [0x50a19c]
fadd dword [0x4c000c]
fstp dword [0x50a19c]
jmp 0x40c130
fnstcw word [ebp - 0x24a]
mov eax, dword [0x50a154]
mov edi, dword [0x50a10c]
mov edx, 0x51eb851f
fild dword [0x50a110]
fsub dword [0x50a1a0]
mov dword [ebp - 0x264], eax
mov eax, dword [0x50a158]
fild dword [ebp - 0x264]
mov esi, dword [0x4c0004]
mov dword [ebp - 0x260], eax
movzx eax, word [ebp - 0x24a]
mov dword [ebp - 0x258], esi
movzx ecx, byte [0x50a18c]
or ah, 0xc
fmulp st(1)
fild dword [ebp - 0x258]
mov ebx, dword [0x50a1a4]
mov word [ebp - 0x24c], ax
mov eax, edi
imul ecx, dword [0x50a190]
imul edx
mov eax, edi
sar eax, 0x1f
fmulp st(1)
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x258]
fldcw word [ebp - 0x24a]
sar edx, 5
sub edx, eax
imul eax, edx, 0x64
sub edi, eax
cmp edi, 0x31
jle 0x40d340
movzx edx, byte [0x50a196]
mov eax, 1
imul ebx, dword [ebp - 0x260]
sub eax, edx
mov edx, dword [0x50a0ec]
mov edi, eax
imul ebx, esi
shl edi, 0x18
sub edi, eax
lea eax, [ebp - 0x114]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a0e8]
sub ecx, ebx
mov ebx, ecx
lea ecx, [ebp - 0x11c]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
mov eax, dword [ebp - 0x258]
sub esp, 8
mov dword [esp + 8], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00401e30
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40cc1f
mov dword [esp], eax
call fcn.004b45e0
fnstcw word [ebp - 0x24a]
mov eax, dword [0x50a1ec]
mov ecx, dword [0x50a154]
imul ecx, dword [0x4c0004]
cdq
idiv ecx
mov edx, dword [0x50a104]
mov dword [ebp - 0x260], eax
movzx eax, word [ebp - 0x24a]
fild dword [ebp - 0x260]
fadd dword [0x4c336c]
or ah, 0xc
mov word [ebp - 0x24c], ax
movzx eax, word [ebp - 0x24a]
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x258]
fldcw word [ebp - 0x24a]
and ah, 0xf3
or ah, 4
fld dword [0x50a1a0]
mov word [ebp - 0x24e], ax
mov eax, edx
sub eax, dword [0x50a100]
sar eax, 3
fld st(0)
imul eax, eax, 0xaaaaaaab
fldcw word [ebp - 0x24e]
frndint
fldcw word [ebp - 0x24a]
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x260]
fldcw word [ebp - 0x24a]
mov ebx, dword [ebp - 0x260]
cmp eax, ebx
jbe 0x40cfb7
fild dword [ebp - 0x258]
fstp dword [ebp - 0x260]
jmp 0x40cd12
fstp st(0)
mov dword [esp], ebx
add ebx, 1
call fcn.004020b0
mov edx, dword [0x50a104]
fld dword [0x50a1a0]
mov eax, edx
sub eax, dword [0x50a100]
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp eax, ebx
jbe 0x40d2d8
fld dword [ebp - 0x260]
mov dword [ebp - 0x258], ebx
fadd st(1)
fild dword [ebp - 0x258]
fxch st(1)
fcompp
fnstsw ax
sahf
ja 0x40cce0
fnstcw word [ebp - 0x24a]
fld st(0)
movzx eax, word [ebp - 0x24a]
and ah, 0xf3
or ah, 4
mov word [ebp - 0x24e], ax
movzx eax, word [ebp - 0x24a]
fldcw word [ebp - 0x24e]
frndint
fldcw word [ebp - 0x24a]
or ah, 0xc
mov word [ebp - 0x24c], ax
mov eax, edx
sub eax, dword [0x50a100]
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x258]
fldcw word [ebp - 0x24a]
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov ebx, dword [ebp - 0x258]
cmp ebx, eax
jb 0x40cdc3
fstp st(0)
jmp 0x40cfc4
fstp st(0)
fstp st(0)
mov eax, edx
sub eax, dword [0x50a100]
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp eax, ebx
jbe 0x40cfc4
fld dword [0x50a1a0]
mov dword [ebp - 0x258], ebx
fild dword [ebp - 0x258]
fld dword [ebp - 0x260]
fadd st(2)
fcomp st(1)
fnstsw ax
sahf
jbe 0x40cfc0
add ebx, 1
cmp byte [0x50a18c], 0
je 0x40cda0
fnstcw word [ebp - 0x24a]
fsubr st(1), st(0)
mov dword [esp], 0
mov edi, 1
movzx edx, byte [0x50a196]
mov eax, edx
fstp dword [ebp - 0x258]
fild dword [0x50a154]
shl eax, 0x18
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [0x50a154]
fmulp st(1)
imul eax, dword [0x4c0004]
fild dword [0x4c0004]
mov dword [esp + 0xc], eax
mov eax, dword [0x50a190]
fmulp st(1)
sub eax, 6
mov dword [esp + 8], eax
movzx eax, word [ebp - 0x24a]
or ah, 0xc
mov word [ebp - 0x24c], ax
fldcw word [ebp - 0x24c]
fistp dword [esp + 4]
fldcw word [ebp - 0x24a]
call fcn.00401b90
fld dword [ebp - 0x258]
fsub dword [0x50a1a0]
mov dword [esp + 0x10], ebx
fnstcw word [ebp - 0x24a]
movzx eax, byte [0x50a196]
fild dword [0x50a154]
mov dword [esp + 0xc], 0x4c333d
mov ecx, dword [0x50a190]
mov dword [esp + 8], 0x10
sub edi, eax
mov dword [esp + 4], 0x401800
mov eax, edi
shl edi, 0x18
lea esi, [ecx - 0xc]
lea ecx, [ebp - 0x11c]
sub edi, eax
mov eax, dword [0x4c0004]
fmulp st(1)
mov dword [esp], ecx
mov dword [ebp - 0x258], eax
movzx eax, word [ebp - 0x24a]
fild dword [ebp - 0x258]
or ah, 0xc
mov word [ebp - 0x24c], ax
movzx eax, byte [0x50a18c]
fmulp st(1)
imul esi, eax
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x264]
fldcw word [ebp - 0x24a]
call fcn.0042c260
lea ecx, [ebp - 0x174]
mov eax, dword [0x50a158]
mov dword [esp + 0x10], ebx
imul eax, dword [0x4c0004]
mov dword [esp + 0xc], 0x4c333d
imul eax, dword [ebp - 0x118]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0x401800
mov dword [esp], ecx
sub esi, eax
call fcn.0042c260
mov eax, dword [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x264]
mov dword [esp + 8], eax
lea eax, [ebp - 0x174]
mov dword [esp], eax
call fcn.00401e30
mov eax, dword [ebp - 0x174]
lea edx, [ebp - 0x16c]
cmp eax, edx
je 0x40cf8a
mov dword [esp], eax
call fcn.004b45e0
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
mov edx, dword [0x50a104]
cmp eax, edi
je 0x40cda4
mov dword [esp], eax
call fcn.004b45e0
mov edx, dword [0x50a104]
jmp 0x40cda4
fstp st(0)
jmp 0x40cfc4
fstp st(0)
fstp st(0)
call fcn.00403400
call fcn.00402300
mov esi, dword [0x4c0004]
mov eax, dword [0x50a154]
lea ecx, [ebp - 0x11c]
mov ebx, dword [0x50a1ec]
mov edx, dword [0x50a178]
imul eax, esi
sub ebx, eax
lea eax, [ebp - 0x114]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a174]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 0x10], 0xff
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00401e30
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40d050
mov dword [esp], eax
call fcn.004b45e0
mov eax, dword [0x50a1f0]
mov edx, dword [0x50a1ec]
mov dword [esp + 0x30], 0xcc0020
mov ecx, dword [0x50a1f4]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x268]
mov dword [esp + 0x28], 0x50a1c0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.GDI32.dll_StretchDIBits
movzx eax, byte [0x50a198]
sub esp, 0x34
cmp byte [0x4c0010], 0
mov byte [ebp - 0x258], al
jne 0x40c130
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
fld1
fsubr dword [0x50a1a0]
fst dword [0x50a1a0]
fldz
fcompp
fnstsw ax
sahf
jbe 0x40c130
mov dword [0x50a1a0], 0
jmp 0x40c130
fstp dword [esp]
mov dword [0x50a19c], 0
call fcn.0041d790
cmp byte [0x50a199], 0
fstp dword [0x50a1a0]
je 0x40c884
fnstcw word [ebp - 0x24a]
fild dword [0x50a154]
fmul dword [0x50a1a0]
imul esi, edi
fild dword [0x4c0004]
movzx eax, word [ebp - 0x24a]
fmulp st(1)
fild dword [0x50a1a8]
or ah, 0xc
mov word [ebp - 0x24c], ax
mov eax, dword [0x50a1a4]
imul eax, dword [0x50a158]
faddp st(1)
fldcw word [ebp - 0x24c]
fistp dword [esp + 4]
fldcw word [ebp - 0x24a]
imul eax, dword [0x4c0004]
add eax, dword [0x50a1ac]
sub eax, esi
mov dword [esp], eax
call fcn.004031f0
mov eax, dword [0x50a104]
mov esi, dword [0x50a100]
mov dword [0x50a10c], 0
mov dword [ebp - 0x11c], 0
mov edi, eax
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x118], 0
sub edi, esi
mov dword [ebp - 0x114], 0
mov eax, edi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e443
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], edi
call fcn.004b4630
mov esi, dword [0x50a100]
mov dword [ebp - 0x264], eax
mov eax, dword [0x50a104]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x264]
add edi, eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edi
cmp dword [ebp - 0x260], esi
je 0x40e770
mov edi, eax
lea esi, [esi]
nop
lea eax, [edi + 8]
mov edx, dword [esi + 4]
mov ecx, edi
mov dword [edi], eax
mov eax, dword [esi]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
sub esp, 8
add edi, 0x18
add esi, 0x18
cmp dword [ebp - 0x260], esi
jne 0x40d250
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x118], edi
mov dword [esp], eax
call fcn.004047f0
mov esi, dword [ebp - 0x118]
mov edi, dword [ebp - 0x11c]
cmp esi, edi
je 0x40d2be
nop
mov eax, dword [edi]
lea edx, [edi + 8]
cmp eax, edx
je 0x40d2b1
mov dword [esp], eax
call fcn.004b45e0
add edi, 0x18
cmp esi, edi
jne 0x40d2a0
mov edi, dword [ebp - 0x11c]
test edi, edi
je 0x40c884
mov dword [esp], edi
call fcn.004b45e0
jmp 0x40c884
fnstcw word [ebp - 0x24a]
fld st(0)
movzx ecx, word [ebp - 0x24a]
and ch, 0xf3
or ch, 4
mov word [ebp - 0x24e], cx
movzx ecx, word [ebp - 0x24a]
fldcw word [ebp - 0x24e]
frndint
fldcw word [ebp - 0x24a]
or ch, 0xc
mov word [ebp - 0x24c], cx
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x258]
fldcw word [ebp - 0x24a]
mov ebx, dword [ebp - 0x258]
jmp 0x40cd93
mov dword [ebp - 0x260], 0
jmp 0x40c46b
mov eax, dword [ebp - 0x264]
mov edi, dword [ebp - 0x260]
mov dword [esp + 0x10], 0x999999
imul eax, esi
mov dword [esp + 0xc], eax
mov eax, edi
imul eax, esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x258]
mov dword [esp + 4], eax
mov eax, dword [0x50a114]
sub eax, ebx
mov ebx, eax
imul ebx, edi
imul esi, ebx
add ecx, esi
mov dword [esp], ecx
call fcn.00401b90
fild dword [0x50a110]
fsub dword [0x50a1a0]
fnstcw word [ebp - 0x24a]
fild dword [0x50a154]
mov esi, dword [0x4c0004]
movzx ecx, byte [0x50a18c]
mov ebx, dword [0x50a1a4]
movzx eax, word [ebp - 0x24a]
mov dword [ebp - 0x260], esi
fmulp st(1)
fild dword [ebp - 0x260]
imul ecx, dword [0x50a190]
or ah, 0xc
mov word [ebp - 0x24c], ax
mov eax, dword [0x50a158]
fmulp st(1)
mov dword [ebp - 0x260], eax
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x258]
fldcw word [ebp - 0x24a]
jmp 0x40cb92
call fcn.00405710
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e452
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], esi
cmp edi, ebx
je 0x40e765
mov esi, eax
nop
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40d490
lea ebx, [ebp - 0x218]
mov dword [ebp - 0x214], esi
mov dword [esp], ebx
call fcn.004047f0
mov ebx, dword [ebp - 0x214]
mov esi, dword [ebp - 0x218]
cmp ebx, esi
je 0x40c4fe
nop
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40d4f1
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40d4e0
mov esi, dword [ebp - 0x218]
jmp 0x40c4fe
fld1
mov eax, dword [0x50a104]
fld dword [0x50a1a0]
mov dword [ebp - 0x25c], 0
sub eax, dword [0x50a100]
sar eax, 3
imul eax, eax, 0xaaaaaaab
fadd st(1)
mov dword [ebp - 0x260], eax
fst dword [0x50a1a0]
fild qword [ebp - 0x260]
fild dword [0x50a154]
fild dword [0x4c0004]
fild dword [0x50a1ec]
fld st(3)
fsub st(5)
faddp st(6)
fxch st(5)
fmul st(2)
fmul st(1)
fxch st(5)
fcom st(5)
fnstsw ax
fstp st(5)
sahf
jbe 0x40d599
lea esi, [esi]
lea esi, [esi]
fld1
fsub st(4), st(0)
fld st(3)
fsub st(5)
faddp st(1)
fmul st(2)
fmul st(1)
fxch st(5)
fcom st(5)
fnstsw ax
fstp st(5)
sahf
ja 0x40d570
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(1)
fst dword [0x50a1a0]
jmp 0x40d5a1
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(1)
fldz
fcompp
fnstsw ax
sahf
jbe 0x40c130
jmp 0x40d103
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
cwde
sub esp, 4
shr eax, 0x1f
mov dword [esp], eax
call fcn.00404d90
lea eax, [ebp - 0x114]
mov edx, dword [0x50a0ec]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a0e8]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x50a110]
mov dword [esp], eax
call fcn.00402a30
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40d62b
mov dword [esp], eax
call fcn.004b45e0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f0], 0
mov dword [ebp - 0x1ec], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e578
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], esi
cmp edi, ebx
je 0x40e836
mov esi, eax
lea esi, [esi]
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40d6b8
lea ebx, [ebp - 0x1f4]
mov dword [ebp - 0x1f0], esi
mov dword [esp], ebx
call fcn.004047f0
mov ebx, dword [ebp - 0x1f0]
mov esi, dword [ebp - 0x1f4]
cmp ebx, esi
je 0x40c4fe
lea esi, [esi]
nop
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40d721
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40d710
mov esi, dword [ebp - 0x1f4]
jmp 0x40c4fe
fst dword [0x50a1a0]
jmp 0x40c871
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
cwde
sub esp, 4
shr eax, 0x1f
mov dword [esp], eax
call fcn.00405410
lea eax, [ebp - 0x114]
mov edx, dword [0x50a0ec]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a0e8]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x50a110]
mov dword [esp], eax
call fcn.00402a30
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40d7b6
mov dword [esp], eax
call fcn.004b45e0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1e0], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e646
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e0], esi
cmp edi, ebx
je 0x40e85a
mov esi, eax
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40d840
lea ebx, [ebp - 0x1e8]
mov dword [ebp - 0x1e4], esi
mov dword [esp], ebx
call fcn.004047f0
mov ebx, dword [ebp - 0x1e4]
mov esi, dword [ebp - 0x1e8]
cmp ebx, esi
je 0x40c4fe
nop
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40d8a1
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40d890
mov esi, dword [ebp - 0x1e8]
jmp 0x40c4fe
mov edi, dword [0x50a1ac]
lea eax, [eax + eax*2]
movzx ecx, byte [0x50a18c]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x260], edi
mov edi, dword [0x50a190]
mov byte [ebp - 0x26c], cl
mov dword [ebp - 0x264], edi
mov edi, dword [0x50a158]
mov dword [ebp - 0x270], edi
mov edi, dword [0x50a1a4]
mov dword [ebp - 0x274], edi
mov edi, eax
mov eax, dword [0x50a094]
lea esi, [eax + edi*4]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, ecx
sub eax, edx
mov edi, eax
sar edi, 2
je 0x40e6a1
cmp edi, 0x1fffffff
ja 0x40f064
mov dword [esp], eax
call fcn.004b4630
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov edi, eax
mov eax, ecx
sub eax, edx
cmp ecx, edx
jne 0x40e4b8
sar eax, 2
mov esi, eax
je 0x40db32
fnstcw word [ebp - 0x24a]
mov eax, dword [ebp - 0x264]
movzx edx, byte [ebp - 0x26c]
mov ecx, dword [ebp - 0x260]
sub eax, 6
imul eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x270]
imul eax, dword [ebp - 0x258]
mov dword [ebp - 0x260], ecx
fild dword [ebp - 0x260]
mov dword [ebp - 0x260], eax
fild dword [ebp - 0x260]
movzx eax, word [ebp - 0x24a]
fdivp st(1)
or ah, 0xc
mov word [ebp - 0x24c], ax
xor eax, eax
fild dword [ebp - 0x274]
faddp st(1)
fldcw word [ebp - 0x24c]
fistp dword [ebp - 0x260]
fldcw word [ebp - 0x24a]
mov edx, dword [ebp - 0x260]
jmp 0x40d9db
add eax, 2
cmp eax, esi
jae 0x40db32
cmp dword [edi + eax*4 + 4], edx
jl 0x40d9d0
cmp dword [edi + eax*4], edx
jg 0x40db32
mov edx, eax
and eax, 0xfffffffe
mov ecx, dword [ebp - 0x278]
sar edx, 1
add eax, edx
mov edx, dword [0x50a0ac]
mov edx, dword [edx + ecx*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0x114]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x11c], eax
mov eax, dword [edx]
add ecx, eax
mov dword [esp], eax
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x11c]
call fcn.00401810
sub esp, 8
lea eax, [ebp - 0x11c]
mov dword [esp + 8], eax
mov eax, dword [0x50a11c]
mov byte [esp + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [0x50a118]
mov dword [esp], eax
call fcn.004afed0
cmp eax, dword [0x50a11c]
je 0x40ed9f
mov dword [esp], eax
mov ecx, 0x50a118
call fcn.0049f260
lea eax, [ebp - 0x11c]
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [0x50a128]
mov byte [esp + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [0x50a124]
mov dword [esp], eax
call fcn.004afed0
mov ecx, eax
cmp dword [0x50a128], eax
je 0x40ee5b
mov dword [esp], 0x50a100
lea esi, [ebp - 0x174]
mov ecx, esi
call fcn.0049f370
sub esp, 4
mov dword [esp], esi
call fcn.004047f0
mov esi, dword [ebp - 0x170]
mov eax, dword [ebp - 0x174]
cmp esi, eax
je 0x40db0e
mov dword [ebp - 0x260], eax
lea esi, [esi]
lea esi, [esi]
mov ecx, dword [ebp - 0x260]
mov eax, dword [ecx]
lea edx, [ecx + 8]
cmp eax, edx
je 0x40daf7
mov dword [esp], eax
call fcn.004b45e0
add dword [ebp - 0x260], 0x18
mov eax, dword [ebp - 0x260]
cmp esi, eax
jne 0x40dae0
mov eax, dword [ebp - 0x174]
test eax, eax
je 0x40db1a
mov dword [esp], eax
call fcn.004b45e0
mov eax, dword [ebp - 0x11c]
lea ecx, [ebp - 0x114]
cmp eax, ecx
je 0x40db32
mov dword [esp], eax
call fcn.004b45e0
mov dword [esp], edi
call fcn.004b45e0
jmp 0x40c91f
call fcn.00402dc0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x1dc], 0
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e6c4
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], esi
cmp edi, ebx
je 0x40ea64
mov esi, eax
nop
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40dbd0
lea ebx, [ebp - 0x1dc]
mov dword [ebp - 0x1d8], esi
mov dword [esp], ebx
call fcn.004047f0
mov esi, dword [ebp - 0x1d8]
mov ebx, dword [ebp - 0x1dc]
cmp esi, ebx
je 0x40dc3e
lea esi, [esi]
nop
mov eax, dword [ebx]
lea edx, [ebx + 8]
cmp eax, edx
je 0x40dc31
mov dword [esp], eax
call fcn.004b45e0
add ebx, 0x18
cmp esi, ebx
jne 0x40dc20
mov ebx, dword [ebp - 0x1dc]
test ebx, ebx
je 0x40c130
mov dword [esp], ebx
call fcn.004b45e0
jmp 0x40c130
mov esi, dword [ebp - 0x260]
jmp 0x40c4b7
mov edx, dword [ebp + 0x10]
lea eax, [ebp - 0x114]
mov dword [ebp - 0x11c], eax
mov eax, 0xffffffff
test edx, edx
je 0x40dc84
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
add eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x11c]
mov byte [esp + 8], 0
mov dword [esp], eax
call fcn.004a1960
lea eax, [ebp - 0x11c]
sub esp, 0xc
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x254]
mov dword [esp], eax
call fcn.0040b490
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40dcd1
mov dword [esp], eax
call fcn.004b45e0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e733
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x228], esi
cmp edi, ebx
je 0x40ea6f
mov esi, eax
lea esi, [esi]
nop
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40dd60
lea ebx, [ebp - 0x230]
mov dword [ebp - 0x22c], esi
mov dword [esp], ebx
call fcn.004047f0
mov ebx, dword [ebp - 0x22c]
mov esi, dword [ebp - 0x230]
cmp ebx, esi
je 0x40ddce
lea esi, [esi]
nop
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40ddc1
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40ddb0
mov esi, dword [ebp - 0x230]
test esi, esi
je 0x40c120
mov dword [esp], esi
call fcn.004b45e0
jmp 0x40c120
lea eax, [ebp - 0x11c]
mov dword [esp], edi
mov ecx, 0x50a100
mov dword [esp + 4], eax
call fcn.0049ed60
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
sub esp, 8
cmp eax, edi
je 0x40de15
mov dword [esp], eax
call fcn.004b45e0
mov edi, dword [0x50a104]
jmp 0x40bf8f
call fcn.00402fc0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x1c8], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e78a
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], esi
cmp edi, ebx
je 0x40edf0
mov esi, eax
nop
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40deb0
lea ebx, [ebp - 0x1d0]
mov dword [ebp - 0x1cc], esi
mov dword [esp], ebx
call fcn.004047f0
mov esi, dword [ebp - 0x1cc]
mov ebx, dword [ebp - 0x1d0]
cmp esi, ebx
je 0x40dc3e
nop
mov eax, dword [ebx]
lea edx, [ebx + 8]
cmp eax, edx
je 0x40df11
mov dword [esp], eax
call fcn.004b45e0
add ebx, 0x18
cmp esi, ebx
jne 0x40df00
mov ebx, dword [ebp - 0x1d0]
jmp 0x40dc3e
mov eax, dword [0x50a114]
mov edx, dword [0x50a0ec]
cmp eax, edx
ja 0x40f048
mov dword [esp + 0xc], 0x20
mov ecx, 0x50a0e8
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004a1c50
mov eax, dword [0x50a114]
mov edi, dword [0x50a158]
mov esi, dword [0x4c0004]
movzx ecx, byte [0x50a18c]
sub esp, 0x10
lea edx, [eax + 1]
mov dword [ebp - 0x260], eax
mov eax, dword [0x50a1a4]
mov dword [0x50a114], edx
imul ecx, dword [0x50a190]
sub edx, eax
mov ebx, dword [0x50a1f0]
add edx, 1
imul edx, edi
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x264], ebx
imul edx, esi
add edx, ecx
cmp edx, ebx
jle 0x40dff3
mov ebx, edi
lea edx, [eax + 1]
neg ebx
mov ecx, ebx
mov ebx, dword [ebp - 0x260]
imul ecx, esi
sub ebx, eax
mov eax, ebx
mov ebx, dword [ebp - 0x264]
add eax, 1
imul eax, edi
imul eax, esi
add eax, dword [ebp - 0x26c]
nop
mov esi, eax
mov edi, edx
add eax, ecx
add edx, 1
cmp ebx, esi
jl 0x40dfe0
mov dword [0x50a1a4], edi
lea eax, [ebp - 0x114]
mov edx, dword [0x50a0ec]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a0e8]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x50a110]
mov dword [esp], eax
call fcn.00402a30
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40e050
mov dword [esp], eax
call fcn.004b45e0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x208], 0
mov dword [ebp - 0x204], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e77b
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x204], esi
cmp edi, ebx
je 0x40edfb
mov esi, eax
lea esi, [esi]
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40e0e0
lea ebx, [ebp - 0x20c]
mov dword [ebp - 0x208], esi
mov dword [esp], ebx
call fcn.004047f0
mov esi, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x20c]
cmp esi, ebx
je 0x40dc3e
nop
mov eax, dword [ebx]
lea edx, [ebx + 8]
cmp eax, edx
je 0x40e141
mov dword [esp], eax
call fcn.004b45e0
add ebx, 0x18
cmp esi, ebx
jne 0x40e130
mov ebx, dword [ebp - 0x20c]
jmp 0x40dc3e
mov dword [ebp - 0x260], 0
jmp 0x40bfef
mov eax, dword [0x50a114]
mov edx, dword [0x50a0ec]
cmp eax, edx
ja 0x40f048
mov dword [esp + 0xc], 0x20
mov ecx, 0x50a0e8
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004a1c50
mov eax, dword [0x50a114]
mov edx, dword [0x50a0ec]
sub esp, 0x10
cmp eax, edx
ja 0x40f048
mov dword [esp + 0xc], 0x20
mov ecx, 0x50a0e8
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004a1c50
mov eax, dword [0x50a114]
mov edx, dword [0x50a0ec]
sub esp, 0x10
cmp eax, edx
ja 0x40f048
mov dword [esp + 0xc], 0x20
mov ecx, 0x50a0e8
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004a1c50
mov eax, dword [0x50a114]
mov edx, dword [0x50a0ec]
sub esp, 0x10
cmp eax, edx
ja 0x40f048
mov dword [esp + 0xc], 0x20
mov ecx, 0x50a0e8
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004a1c50
mov eax, dword [0x50a114]
movzx edx, byte [0x50a18c]
imul edx, dword [0x50a190]
mov ecx, dword [0x50a1a4]
sub esp, 0x10
add eax, 4
mov edi, dword [0x50a158]
mov ebx, dword [0x4c0004]
mov esi, dword [0x50a1f0]
mov dword [0x50a114], eax
mov dword [ebp - 0x264], edx
mov edx, eax
sub edx, ecx
mov dword [ebp - 0x260], ebx
add edx, 1
imul edx, edi
imul edx, ebx
add edx, dword [ebp - 0x264]
cmp edx, esi
jle 0x40e2e3
mov ebx, dword [ebp - 0x260]
mov edx, edi
sub eax, ecx
neg edx
imul eax, edi
imul ebx, edx
lea edx, [ecx + 1]
imul eax, dword [ebp - 0x260]
add eax, dword [ebp - 0x264]
lea esi, [esi]
lea esi, [esi]
mov ecx, eax
mov edi, edx
add eax, ebx
add edx, 1
cmp ecx, esi
jg 0x40e2d0
mov dword [0x50a1a4], edi
lea eax, [ebp - 0x114]
mov edx, dword [0x50a0ec]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a0e8]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [0x50a110]
mov dword [esp], eax
call fcn.00402a30
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40e340
mov dword [esp], eax
call fcn.004b45e0
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1fc], 0
mov dword [ebp - 0x1f8], 0
mov esi, edi
sub esi, ebx
mov eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x40e4ef
cmp eax, 0x5555555
ja 0x40f064
mov dword [esp], esi
call fcn.004b4630
mov edi, dword [0x50a104]
mov ebx, dword [0x50a100]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
add esi, eax
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1f8], esi
cmp edi, ebx
je 0x40ede5
mov esi, eax
lea esi, [esi]
lea eax, [esi + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
mov dword [esi], eax
mov eax, dword [ebx]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add ebx, 0x18
sub esp, 8
add esi, 0x18
cmp edi, ebx
jne 0x40e3d0
lea ebx, [ebp - 0x200]
mov dword [ebp - 0x1fc], esi
mov dword [esp], ebx
call fcn.004047f0
mov ebx, dword [ebp - 0x1fc]
mov esi, dword [ebp - 0x200]
cmp ebx, esi
je 0x40c4fe
nop
mov eax, dword [esi]
lea edx, [esi + 8]
cmp eax, edx
je 0x40e431
mov dword [esp], eax
call fcn.004b45e0
add esi, 0x18
cmp ebx, esi
jne 0x40e420
mov esi, dword [ebp - 0x200]
jmp 0x40c4fe
mov dword [ebp - 0x264], 0
jmp 0x40d220
mov dword [ebp - 0x260], 0
jmp 0x40d46b
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40e865
mov eax, dword [0x50a114]
sub eax, 1
js 0x40e825
mov dword [0x50a114], eax
mov edx, dword [0x50a1a4]
sub eax, edx
imul eax, dword [0x50a158]
imul eax, dword [0x4c0004]
test eax, eax
jns 0x40c130
sub edx, 1
mov dword [0x50a1a4], edx
jmp 0x40c130
mov dword [esp + 8], eax
mov esi, eax
mov dword [esp + 4], edx
sar esi, 2
mov dword [esp], edi
call sub.msvcrt.dll_memmove
test esi, esi
jne 0x40d949
jmp 0x40db32
mov dword [ebp - 0x260], 0
jmp 0x40c667
mov dword [ebp - 0x260], 0
jmp 0x40e3a6
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
mov eax, dword [0x50a114]
js 0x40ec1e
mov edx, dword [0x50a0ec]
add eax, 1
mov dword [0x50a114], eax
cmp eax, edx
jb 0x40e535
mov dword [0x50a114], edx
mov eax, edx
mov edx, dword [0x50a1a4]
movzx ecx, byte [0x50a18c]
imul ecx, dword [0x50a190]
sub eax, edx
add eax, 1
imul eax, dword [0x50a158]
imul eax, dword [0x4c0004]
add eax, ecx
cmp eax, dword [0x50a1f0]
jle 0x40c130
add edx, 1
mov dword [0x50a1a4], edx
jmp 0x40c130
mov dword [ebp - 0x260], 0
jmp 0x40d691
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40eb2c
mov eax, dword [ebp - 0x1b0]
cmp eax, 0x46
jne 0x40c59a
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40ecdb
mov eax, dword [ebp - 0x1b0]
cmp eax, 0x53
jne 0x40c5a3
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40eaa9
mov eax, dword [ebp - 0x1b0]
cmp eax, 0x56
jne 0x40c5ac
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40ee95
mov eax, dword [ebp - 0x1b0]
cmp eax, 0x48
jne 0x40c5b5
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40e841
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5b5
mov dword [ebp - 0x260], 0
jmp 0x40d81c
mov eax, dword [ebp - 0x114]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x110]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x10c]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x108]
mov dword [edi + 0x14], eax
jmp 0x40bf7d
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40ea0c
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5be
cmp edx, ecx
je 0x40c91f
mov dword [esp + 8], eax
xor edi, edi
mov dword [esp + 4], edx
mov dword [esp], 0
call sub.msvcrt.dll_memmove
jmp 0x40db32
mov dword [ebp - 0x260], 0
jmp 0x40dbaa
mov esi, dword [ebp - 0x260]
jmp 0x40c03f
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
jns 0x40c601
mov eax, dword [0x4c0004]
sub eax, 1
test eax, eax
jle 0x40ef95
mov dword [0x4c0004], eax
jmp 0x40c130
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40e9ab
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5c7
mov dword [ebp - 0x260], 0
jmp 0x40dd37
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40ea7a
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5d0
mov esi, dword [ebp - 0x260]
jmp 0x40d4b7
mov edi, dword [ebp - 0x264]
jmp 0x40d27b
mov dword [ebp - 0x260], 0
jmp 0x40e0b6
mov dword [ebp - 0x260], 0
jmp 0x40de8b
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40ee2c
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5d9
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40e8f6
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5e2
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40e930
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5f6
mov dword [esp], 0x11
call sub.USER32.dll_GetKeyState
sub esp, 4
test ax, ax
js 0x40e950
mov eax, dword [ebp - 0x1b0]
jmp 0x40c5eb
mov dword [0x50a114], 0
xor eax, eax
jmp 0x40e48c
mov esi, dword [ebp - 0x260]
jmp 0x40d6df
cmp byte [0x50a197], 0
je 0x40e97c
mov byte [0x50a197], 0
jmp 0x40c130
mov esi, dword [ebp - 0x260]
jmp 0x40d867
mov ecx, dword [0x50a114]
mov edx, dword [0x50a0e8]
lea eax, [ecx - 1]
movzx ecx, byte [edx + ecx - 1]
test eax, eax
jg 0x40e897
jmp 0x40ee06
cmp byte [edx + eax], 0x20
je 0x40e8a2
sub eax, 1
je 0x40efe0
cmp cl, 0x20
jne 0x40e888
cmp byte [edx + eax], 0x20
je 0x40e88e
add eax, 1
mov dword [0x50a114], eax
mov esi, dword [0x50a1a4]
mov ecx, dword [0x50a158]
mov edx, eax
mov ebx, dword [0x4c0004]
sub edx, esi
imul edx, ecx
imul edx, ebx
test edx, edx
jns 0x40c130
lea edx, [esi - 1]
mov esi, ecx
sub eax, edx
imul esi, ebx
imul eax, ecx
imul eax, ebx
mov ecx, eax
mov ebx, edx
add eax, esi
sub edx, 1
test ecx, ecx
js 0x40e8de
mov dword [0x50a1a4], ebx
jmp 0x40c130
mov dword [esp], 0x50a100
lea ecx, [ebp - 0x11c]
xor byte [0x50a195], 1
call fcn.0049f370
lea eax, [ebp - 0x11c]
sub esp, 4
mov dword [esp], eax
call fcn.004047f0
lea ecx, [ebp - 0x11c]
call fcn.0049f490
jmp 0x40c130
mov eax, dword [0x4c0004]
add eax, 1
cmp eax, 0xa
jle 0x40e706
mov dword [0x4c0004], 0xa
jmp 0x40c130
mov dword [esp], 0x50a100
lea ecx, [ebp - 0x11c]
xor byte [0x50a194], 1
call fcn.0049f370
lea eax, [ebp - 0x11c]
sub esp, 4
mov dword [esp], eax
call fcn.004047f0
jmp 0x40e920
mov dword [esp], 0x50a100
lea ecx, [ebp - 0x11c]
mov byte [0x50a197], 1
call fcn.0049f370
lea eax, [ebp - 0x11c]
sub esp, 4
mov dword [esp], eax
call fcn.004047f0
jmp 0x40e920
mov dword [esp], 0x50a100
lea ecx, [ebp - 0x11c]
xor byte [0x50a18c], 1
call fcn.0049f370
lea eax, [ebp - 0x11c]
sub esp, 4
mov dword [esp], eax
call fcn.004047f0
mov esi, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x11c]
cmp esi, ebx
je 0x40dc3e
mov eax, dword [ebx]
lea edx, [ebx + 8]
cmp eax, edx
je 0x40e9fa
mov dword [esp], eax
call fcn.004b45e0
add ebx, 0x18
cmp esi, ebx
jne 0x40e9e9
mov ebx, dword [ebp - 0x11c]
jmp 0x40dc3e
mov dword [esp], 0x50a100
lea ecx, [ebp - 0x11c]
xor byte [0x50a196], 1
call fcn.0049f370
lea eax, [ebp - 0x11c]
sub esp, 4
mov dword [esp], eax
call fcn.004047f0
mov esi, dword [ebp - 0x118]
mov ebx, dword [ebp - 0x11c]
cmp esi, ebx
je 0x40dc3e
mov eax, dword [ebx]
lea edx, [ebx + 8]
cmp eax, edx
je 0x40ea5b
mov dword [esp], eax
call fcn.004b45e0
add ebx, 0x18
cmp esi, ebx
jne 0x40ea4a
jmp 0x40ea01
mov esi, dword [ebp - 0x260]
jmp 0x40dbf7
mov esi, dword [ebp - 0x260]
jmp 0x40dd87
mov dword [esp], 0x50a100
lea ecx, [ebp - 0x11c]
xor byte [0x50a19a], 1
call fcn.0049f370
lea eax, [ebp - 0x11c]
sub esp, 4
mov dword [esp], eax
call fcn.004047f0
jmp 0x40e920
mov dword [esp], 0x4c211d
mov ecx, 0x50a0d0
call fcn.004377e0
sub esp, 4
test eax, eax
je 0x40ef4a
lea eax, [ebp - 0x114]
mov edx, dword [0x50a0d4]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov eax, dword [0x50a0d0]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x254]
mov dword [esp], eax
call fcn.00402ab0
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x40c130
mov dword [esp], eax
call fcn.004b45e0
jmp 0x40c130
xor eax, eax
lea edi, [ebp - 0x16c]
mov ecx, 0x14
mov dword [ebp - 0x11c], 0
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x118]
mov ecx, 0x40
mov dword [ebp - 0x174], 0x58
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x154], 0x104
mov dword [ebp - 0x168], 0x4c3310
mov dword [ebp - 0x170], eax
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x174]
mov dword [esp], eax
mov dword [ebp - 0x15c], 1
mov dword [ebp - 0x140], 0x1800
call sub.COMDLG32.DLL_GetOpenFileNameA
sub esp, 4
cmp eax, 1
jne 0x40c130
mov eax, dword [ebp - 0x158]
lea ebx, [ebp - 0x1d0]
mov ecx, ebx
mov dword [esp], eax
call fcn.00404d40
mov eax, dword [ebp - 0x254]
sub esp, 4
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040b490
mov eax, dword [ebp - 0x1d0]
lea edx, [ebp - 0x1c8]
cmp eax, edx
je 0x40ebf9
mov dword [esp], eax
call fcn.004b45e0
mov dword [esp], 0x50a100
mov ecx, ebx
call fcn.0049f370
sub esp, 4
mov dword [esp], ebx
call fcn.004047f0
mov ecx, ebx
call fcn.0049f490
jmp 0x40c130
mov ebx, dword [0x50a0e8]
mov esi, dword [0x50a0ec]
movzx ecx, byte [ebx + eax]
lea edx, [esi - 1]
add eax, 1
cmp edx, eax
ja 0x40ec51
jmp 0x40ee1d
cmp byte [ebx + eax], 0x20
je 0x40ec5c
add eax, 1
cmp eax, edx
jae 0x40ee1d
cmp cl, 0x20
jne 0x40ec40
cmp byte [ebx + eax], 0x20
je 0x40ec46
cmp eax, esi
jbe 0x40ec62
mov eax, esi
movzx edx, byte [0x50a18c]
imul edx, dword [0x50a190]
mov dword [0x50a114], eax
mov ebx, dword [0x50a1a4]
mov ecx, dword [0x50a158]
mov esi, dword [0x4c0004]
mov edi, dword [0x50a1f0]
mov dword [ebp - 0x260], edx
mov edx, eax
sub edx, ebx
imul edx, ecx
imul edx, esi
add edx, dword [ebp - 0x260]
cmp edx, edi
jle 0x40c130
lea edx, [ebx + 1]
mov ebx, ecx
sub eax, edx
neg ebx
imul eax, ecx
imul ebx, esi
imul eax, esi
add eax, dword [ebp - 0x260]
mov ecx, eax
mov esi, edx
add eax, ebx
add edx, 1
cmp ecx, edi
jg 0x40ecc3
mov dword [0x50a1a4], esi
jmp 0x40c130
xor eax, eax
lea edi, [ebp - 0x16c]
mov ecx, 0x14
mov dword [ebp - 0x11c], 0
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x118]
mov ecx, 0x40
mov dword [ebp - 0x174], 0x58
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x154], 0x104
mov dword [ebp - 0x168], 0x4c3310
mov dword [ebp - 0x170], eax
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x174]
mov dword [esp], eax
mov dword [ebp - 0x15c], 1
mov dword [ebp - 0x140], 0x1800
call sub.COMDLG32.DLL_GetOpenFileNameA
sub esp, 4
cmp eax, 1
jne 0x40c130
mov eax, dword [ebp - 0x158]
lea ebx, [ebp - 0x1d0]
mov ecx, ebx
mov dword [esp], eax
call fcn.00404d40
sub esp, 4
mov dword [esp], ebx
call fcn.004024a0
mov eax, dword [ebp - 0x1d0]
lea edx, [ebp - 0x1c8]
cmp eax, edx
jne 0x40eb1f
jmp 0x40c130
lea eax, [ebp - 0x11c]
mov byte [esp + 0xc], 0
mov dword [esp + 8], eax
mov eax, dword [0x50a128]
mov dword [esp + 4], eax
mov eax, dword [0x50a124]
mov dword [esp], eax
call fcn.004afed0
cmp dword [0x50a128], eax
je 0x40efa4
mov dword [esp], eax
mov ecx, 0x50a124
call fcn.0049f260
sub esp, 4
jmp 0x40daa1
mov esi, dword [ebp - 0x260]
jmp 0x40e3f7
mov esi, dword [ebp - 0x260]
jmp 0x40ded7
mov esi, dword [ebp - 0x260]
jmp 0x40e107
mov dword [0x50a114], 0
je 0x40e8aa
xor eax, eax
jmp 0x40e8aa
cmp eax, edx
sete dl
movzx edx, dl
add eax, edx
jmp 0x40ec5c
mov dword [esp], 0
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov dword [esp + 8], 0x40005
mov dword [esp + 4], eax
mov dword [esp], 0x10
call sub.WINMM.DLL_PlaySoundA
sub esp, 0xc
jmp 0x40c130
cmp eax, dword [0x50a12c]
je 0x40efef
lea eax, [eax + 8]
mov edx, dword [ebp - 0x118]
mov dword [ecx], eax
mov eax, dword [ebp - 0x11c]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add dword [0x50a128], 0x18
sub esp, 8
jmp 0x40daa1
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.00405b10
mov eax, dword [0x50a114]
mov edx, dword [0x50a0ec]
mov ebx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x11c]
cmp eax, edx
ja 0x40f027
mov dword [esp + 8], ecx
mov ecx, 0x50a0e8
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004a1420
mov ebx, dword [0x50a1a4]
mov eax, dword [ebp - 0x118]
sub esp, 0x10
add eax, dword [0x50a114]
mov ecx, dword [0x50a158]
mov dword [0x50a114], eax
sub eax, ebx
mov edx, dword [0x4c0004]
mov edi, eax
lea eax, [eax + 1]
mov esi, dword [0x50a1f0]
imul eax, ecx
imul eax, edx
cmp esi, eax
jge 0x40eb0b
lea eax, [ebx + 1]
mov ebx, ecx
imul ecx, edi
neg ebx
imul ebx, edx
imul edx, ecx
mov edi, ebx
mov ecx, edx
mov ebx, eax
add edx, edi
add eax, 1
cmp ecx, esi
jg 0x40ef32
mov dword [0x50a1a4], ebx
jmp 0x40eb0b
mov edx, dword [0x50a100]
lea eax, [ebp - 0x114]
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov edi, dword [edx + 4]
mov eax, dword [edx]
add edi, eax
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00401810
lea eax, [ebp - 0x11c]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x254]
mov dword [esp], eax
call fcn.00402ab0
jmp 0x40eb0b
mov dword [0x4c0004], 1
jmp 0x40c130
mov ecx, dword [0x50a11c]
cmp ecx, dword [0x50a120]
je 0x40f00e
lea eax, [ecx + 8]
mov edx, dword [ebp - 0x118]
mov dword [ecx], eax
mov eax, dword [ebp - 0x11c]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401810
add dword [0x50a11c], 0x18
sub esp, 8
jmp 0x40daa1
mov dword [0x50a114], 0
jmp 0x40e8aa
lea eax, [ebp - 0x11c]
mov dword [esp], ecx
mov ecx, 0x50a124
mov dword [esp + 4], eax
call fcn.0049eb00
sub esp, 8
jmp 0x40daa1
lea eax, [ebp - 0x11c]
mov dword [esp], ecx
mov ecx, 0x50a118
mov dword [esp + 4], eax
call fcn.0049eb00
jmp 0x40f006
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4c3324
mov dword [esp], 0x4c2144
call fcn.004af590
lea esi, [esi]
nop
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4c32fb
mov dword [esp], 0x4c2144
call fcn.004af590
call fcn.004b7488
mov ebx, eax
jmp 0x4b5b76
mov eax, dword [ebp - 0x11c]
lea edi, [ebp - 0x114]
cmp eax, edi
je 0x4b5b8e
mov dword [esp], eax
call fcn.004b45e0
mov dword [esp], ebx
call fcn.00428bc0
lea ecx, [ebp - 0x11c]
call fcn.0049f490
mov dword [esp], ebx
call fcn.00428bc0
mov eax, dword [ebp - 0x1d0]
lea edx, [ebp - 0x1c8]
cmp eax, edx
jne 0x4b5b86
jmp 0x4b5b8e