Function at 0x4ad3e0
Capabilities:
Extract resource via kernel32 functions
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4da74a
push eax
mov dword fs:[0], esp
sub esp, 0x58c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5ac]
push edi
mov edi, esi
mov ebx, 0xffff
mov ebp, ecx
and edi, ebx
mov ecx, 1
cmp edi, 0x4e40
mov dword [0x65a270], ecx
mov word [0x65a3e4], si
jg 0x4ad5d0
je 0x4ad5a4
add edi, 0xffffb1dd
cmp edi, 0xb
ja case.0x4ad5e9.20065
jmp dword [edi*4 + 0x4aef28]
mov eax, dword [esp + 0x5ac]
mov ecx, ebp
push eax
call fcn.004a8040
jmp case.0x4ad5e9.20065
mov esi, dword [esp + 0x5ac]
push ecx
push esi
call fcn.004a87d0
add esp, 8
test eax, eax
je case.0x4ad5e9.20065
push esi
mov ecx, ebp
call fcn.00495b50
jmp case.0x4ad5e9.20065
mov edi, dword [esp + 0x5ac]
push ecx
push edi
call fcn.004a87d0
mov eax, dword [0x655aac]
add esp, 8
test eax, eax
jne case.0x4ad5e9.20065
mov eax, dword [ebp + 0x130]
test eax, eax
jne case.0x4ad5e9.20065
push edi
call fcn.00429990
add esp, 4
cmp ax, 1
jne case.0x4ad5e9.20065
push 0x34
call fcn.00406c00
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x5a4], 3
je 0x4ad4e9
mov ecx, eax
call fcn.004d7dac
mov esi, eax
jmp 0x4ad4eb
xor esi, esi
lea ecx, [esp + 0x18]
mov dword [esp + 0x5a4], 0xffffffff
push ecx
push 0
push edi
call fcn.00426100
mov edx, dword [esp + 0x24]
push edx
push esi
push edi
call fcn.00472480
add esp, 0x18
test eax, eax
je 0x4ad532
mov ecx, esi
call sub.MFC42.DLL_COleDataSource::SetClipboard
mov eax, dword [esp + 0x18]
push eax
push 0
push edi
call fcn.00426140
add esp, 0xc
jmp 0x4aef0d
test esi, esi
je 0x4ad53f
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 4]
mov eax, dword [esp + 0x18]
push eax
push 0
push edi
call fcn.00426140
add esp, 0xc
jmp case.0x4ad5e9.20065
mov ecx, dword [esp + 0x5ac]
push ecx
mov ecx, ebp
call fcn.00495b50
jmp case.0x4ad5e9.20065
mov edx, dword [esp + 0x5ac]
mov ecx, ebp
push edx
call fcn.00495510
jmp case.0x4ad5e9.20065
mov eax, dword [esp + 0x5ac]
mov ecx, ebp
push eax
call fcn.00484960
jmp case.0x4ad5e9.20065
mov ecx, dword [esp + 0x5ac]
push ecx
mov ecx, ebp
call fcn.004a5510
jmp case.0x4ad5e9.20065
mov esi, dword [ebp + 0xa0]
mov eax, dword [esp + 0x5ac]
xor edx, edx
push ecx
test esi, esi
sete dl
mov dword [ebp + 0xa0], edx
mov ecx, dword [eax + 0x14]
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4ad5e9.20065
lea eax, [edi - 0x4e41]
cmp eax, 0xe7
ja case.0x4ad5e9.20065
xor edx, edx
mov dl, byte [eax + 0x4aefdc]
jmp dword [edx*4 + 0x4aef58]
mov eax, dword [0x655c0e]
test eax, eax
je 0x4ad605
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
jmp case.0x4ad5e9.20065
mov eax, dword [0x655ff8]
mov ecx, dword [0x655afc]
push 0
push eax
push 0
push ecx
push 0xc8
push 0xc8
push 0x64
push 0x32
push 0x94c80000
push str.Word_Count
push str.WORDCOUNT
push 0x188
call dword [sym.imp.USER32.dll_CreateWindowExA]
test eax, eax
mov dword [0x655c0e], eax
je case.0x4ad5e9.20065
push 0
push 4
push 0
push 0
push ebp
push 0x495020
call sub.MFC42.DLL_AfxBeginThread
mov ecx, dword [0x655c0e]
mov dword [0x65af4c], eax
test ecx, ecx
je case.0x4ad5e9.20065
test eax, eax
je case.0x4ad5e9.20065
mov ecx, eax
call fcn.00485010
jmp case.0x4ad5e9.20065
push 0
lea ecx, [esp + 0x204]
call fcn.0043c520
lea ecx, [esp + 0x200]
mov dword [esp + 0x5a4], 0
call sub.MFC42.DLL_CDialog::DoModal
cmp eax, 1
jne 0x4ad713
mov ebx, dword [esp + 0x5ac]
lea edx, [esp + 0x14]
lea eax, [esp + 0x1c]
push edx
mov esi, dword [ebx + 0x24]
push eax
add esi, ebx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push ecx
push edx
call fcn.0048df70
mov eax, dword [esp + 0x2c]
add esp, 0x10
mov ecx, esi
push eax
call fcn.004af580
mov esi, dword [esi + 0x3fc]
mov eax, dword [esp + 0x14]
cmp eax, esi
jl 0x4ad6f4
dec esi
mov dword [esp + 0x14], esi
mov edi, 0x65b7d8
or ecx, 0xffffffff
xor eax, eax
push 3
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x65b7d8
push ebx
mov ecx, ebp
call fcn.0048d240
lea ecx, [esp + 0x200]
mov dword [esp + 0x5a4], 0xffffffff
call fcn.0043c5a0
jmp case.0x4ad5e9.20065
mov ecx, dword [0x655aac]
mov eax, dword [0x655afc]
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x498]
and ecx, 0x13
add ecx, 0x1846
push ecx
push edx
push eax
call fcn.004ac500
add esp, 0xc
test eax, eax
je case.0x4ad5e9.20065
lea ecx, [esp + 0x498]
push 0x506f34
push ecx
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebx, eax
add esp, 8
test ebx, ebx
je case.0x4ad5e9.20065
mov ecx, dword [esp + 0x5ac]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 8]
push ecx
mov ecx, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
call fcn.00493f00
mov edi, dword [sym.imp.MSVCRT.dll_fgets]
push ebx
lea edx, [esp + 0x130]
push 0xd2
push edx
xor esi, esi
call edi
add esp, 0xc
test eax, eax
je 0x4ad7d5
push ebx
lea eax, [esp + 0x130]
push 0xd2
push eax
inc esi
call edi
add esp, 0xc
test eax, eax
jne 0x4ad7bd
mov eax, esi
lea ecx, [esp + 0x398]
cdq
and edx, 3
push 0x100
add eax, edx
mov edx, dword [0x655ff8]
mov edi, eax
push ecx
sar edi, 2
push 0x18db
push edx
mov dword [esp + 0x28], edi
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0x398]
push 0
lea ecx, [edi + esi]
push eax
push ecx
call fcn.004ce9e0
xor esi, esi
push esi
push esi
push ebx
call dword [sym.imp.MSVCRT.dll_fseek]
push ebx
lea edx, [esp + 0x148]
push 0xd2
push edx
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0x24
test eax, eax
je 0x4ad962
jmp 0x4ad848
mov esi, dword [esp + 0x14]
mov eax, esi
inc esi
push eax
mov dword [esp + 0x18], esi
call fcn.004ceb90
mov al, byte [esp + 0x130]
add esp, 4
cmp al, 0xa
je 0x4ad93b
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x12b], 0xa
jne 0x4ad89a
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + ecx + 0x12b], al
lea eax, [esp + 0x12c]
push 0x5016a4
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
mov edx, eax
add esp, 8
test edx, edx
je 0x4ad8b9
mov byte [edx], 0
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x65c090
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test edx, edx
lea edi, [edx + 1]
jne 0x4ad8ee
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x200]
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x5ac]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x200]
push ecx
push 0x65c090
push edx
mov ecx, ebp
call fcn.004aab50
test eax, eax
je 0x4ad93b
mov dword [esp + 0x1c], eax
dec eax
mov dword [esp + 0x20], eax
push ebx
lea eax, [esp + 0x130]
push 0xd2
push eax
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
test eax, eax
jne 0x4ad844
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, esi
push eax
call fcn.004ceb90
mov ebx, dword [esp + 0x5b4]
add esp, 8
mov ecx, ebp
push 1
push ebx
call fcn.0049aa40
add edi, esi
push edi
call fcn.004ceb90
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add esp, 4
push 0
push ecx
push edx
push ebx
mov ecx, ebp
call fcn.00494a50
call fcn.004ceb00
jmp case.0x4ad5e9.20065
push 0
lea ecx, [esp + 0x130]
call fcn.004b54f0
lea ecx, [esp + 0x12c]
mov dword [esp + 0x5a4], 1
call sub.MFC42.DLL_CDialog::DoModal
cmp eax, 1
jne 0x4ada17
mov eax, dword [esp + 0x18c]
lea ecx, [esp + 0x200]
push eax
push str._OL__ld_
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x200]
mov ecx, ebp
push 3
push eax
mov eax, dword [esp + 0x5b4]
push edx
push eax
call fcn.0048d240
lea ecx, [esp + 0x12c]
mov dword [esp + 0x5a4], 0xffffffff
call fcn.004af240
jmp case.0x4ad5e9.20065
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
push ecx
mov ecx, dword [ebp + 4]
push edx
push eax
push ecx
call fcn.0048df70
mov ecx, dword [esp + 0x5bc]
add esp, 0x10
mov eax, dword [ecx + 0x24]
add eax, ecx
cmp word [eax + 0x96], bx
je 0x4adb52
mov edx, dword [esp + 0x14]
mov ecx, ebp
push edx
call fcn.004af580
mov eax, dword [ebp + 0x3fc]
dec eax
push eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.00412540
mov ecx, dword [ebp + 0x3f4]
add esp, 8
mov dword [esp + 0x18], eax
push ecx
mov ecx, ebp
call fcn.004858d0
mov ecx, dword [ebp + 0x3f8]
mov esi, eax
mov eax, dword [esp + 0x14]
push 0xd2
mov edx, eax
push 0xd1
sub edx, ecx
mov ecx, dword [esp + 0x20]
sub ecx, eax
add esi, edx
push ecx
call fcn.00412540
add esp, 8
push eax
call fcn.00412540
mov ebx, eax
mov edi, ebx
and edi, 0xffff
push edi
push esi
push 0x65c090
call dword [sym.imp.MSVCRT.dll_strncpy]
mov byte [edi + 0x65c090], 0
mov al, byte [0x65c090]
add esp, 0x14
xor ebp, ebp
test al, al
je 0x4adb52
lea edx, [esp + 0xb0]
lea edi, [ebp + 0x65c090]
push edx
push 0
push edi
call fcn.004aaa50
add esp, 0xc
cmp ax, bx
je 0x4adb47
test ax, ax
je 0x4adb47
mov edx, eax
mov ecx, ebx
and edx, 0xffff
and ecx, 0xffff
sub ecx, edx
sub ecx, ebp
lea esi, [edx + ebp + 0x65c090]
add ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
sub ebx, eax
rep movsb byte es:[edi], byte [esi]
mov al, byte [ebp + 0x65c091]
inc ebp
test al, al
jne 0x4adaf6
mov eax, dword [esp + 0x5ac]
xor esi, esi
mov dword [0x65b85c], eax
mov dword [0x65c1f4], eax
mov eax, dword [0x655c0a]
mov word [0x65b860], si
cmp eax, esi
mov dword [0x65b864], esi
mov dword [0x65c1f0], esi
mov dword [0x65b858], 0x65c1f0
mov dword [0x65b878], 0x4898f0
mov dword [0x65b87c], 0x489930
mov word [0x65b862], 1
mov word [0x65b870], 0xffff
mov dword [0x65b874], 0x4e65
jne 0x4adc16
push 0x160
call fcn.00406c00
mov dword [esp + 0x24], eax
cmp eax, esi
mov dword [esp + 0x5a4], 2
je 0x4adbe2
push esi
mov ecx, eax
call fcn.0043c370
jmp 0x4adbe4
xor eax, eax
push esi
push 0x14e9
mov ecx, eax
mov dword [esp + 0x5ac], 0xffffffff
mov dword [0x65c290], eax
call sub.MFC42.DLL_CDialog::Create
mov ecx, dword [0x65c290]
call fcn.004b4a00
mov dword [0x655c0a], eax
jmp case.0x4ad5e9.20065
push 0x65b858
push esi
push 0x110
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [0x655c0a]
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
jmp case.0x4ad5e9.20065
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x5ac]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x14], ecx
push edi
mov ecx, ebp
call fcn.00493f00
cmp si, 0x4ee9
push edi
mov ecx, ebp
jne 0x4adc63
call fcn.004aad40
jmp 0x4adc68
call fcn.004abcf0
push 1
push edi
mov ecx, ebp
call fcn.0049aa40
xor edx, edx
mov dx, word [ebp + 0x96]
cmp edx, 0xffffffff
je case.0x4ad5e9.20065
mov eax, dword [esp + 0x14]
push 0x223
push eax
push ebx
push edi
mov ecx, ebp
call fcn.00494a50
mov dword [ebp + 0x90], eax
jmp case.0x4ad5e9.20065
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.00412540
add esp, 8
mov ebx, eax
mov ecx, ebp
push ebx
call fcn.004af580
mov esi, dword [ebp + 0x3fc]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x3f8]
dec esi
mov dword [esp + 0x14], eax
push esi
push ecx
push edx
call fcn.00412550
add esp, 8
push eax
call fcn.00412540
mov edi, dword [ebp + 0x400]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x5ea]
add esp, 8
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax + 0x2e]
mov word [esp + 0xec], 0x7f48
mov dword [esp + 0x20], ecx
lea edx, [esp + 0xec]
push edx
push edi
call fcn.00453820
add esp, 8
test eax, eax
je 0x4add5a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xee]
cmp ecx, eax
jne 0x4add5a
push edi
call fcn.004952e0
mov ecx, dword [esp + 0x18]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x1c], eax
jle 0x4add52
push edi
call fcn.0049eaf0
add esp, 4
mov edi, eax
jmp 0x4add0c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x18]
mov ecx, ebp
push edi
call fcn.004af580
mov edx, dword [ebp + 0x5ea]
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 0x400]
mov eax, dword [edx + 0x2e]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0xec]
push ecx
push edi
call fcn.00453820
add esp, 8
test eax, eax
je 0x4addc3
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xee]
cmp eax, edx
jne 0x4addc3
push edi
call fcn.00490a80
add esp, 4
cmp eax, esi
mov dword [esp + 0x14], eax
jge 0x4addbf
push edi
call fcn.00481a40
add esp, 4
mov edi, eax
jmp 0x4add7d
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x5ac]
push 0x205
push eax
push ebx
push esi
mov ecx, ebp
call fcn.00494a50
mov dword [ebp + 0x90], eax
mov edx, dword [0x655ff8]
push 5
xor eax, eax
lea ecx, [esp + 0x204]
push str.EDITRUBY
push edx
mov word [esp + 0xc4], ax
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc8], 1
mov dword [esp + 0x210], esi
mov dword [esp + 0x20c], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xdc], fcn.004898f0
mov dword [esp + 0xe0], fcn.00489930
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
mov eax, dword [0x655ff8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov cx, word [0x506318]
lea edx, [esp + 0xb0]
mov edi, eax
mov eax, dword [esi + 0x14]
push edx
mov word [esp + 0xce], cx
mov ecx, dword [0x655ff8]
push 0x481600
push eax
push edi
push ecx
mov dword [esp + 0x34], edi
mov word [esp + 0xce], 0xb
mov word [esp + 0xdc], 0xffff
mov dword [esp + 0xd8], 0x659730
mov dword [esp + 0xe0], 0x4e4d
call dword [sym.imp.USER32.dll_DialogBoxIndirectParamA]
test eax, eax
je 0x4ae0b2
mov al, byte [0x6597ce]
mov word [esp + 0x12c], 0x7f48
test al, al
je 0x4adee1
mov eax, dword [ebp + 0x9c]
mov dword [esp + 0x12e], eax
inc eax
mov dword [ebp + 0x9c], eax
jmp 0x4adeec
mov dword [esp + 0x12e], 0
mov eax, dword [esp + 0x18]
push 0
lea edx, [esp + 0x130]
push 0
push edx
push eax
push ebx
mov ecx, ebp
call fcn.00492330
push 0xc
mov ecx, 0x651a58
call fcn.0041a700
mov esi, eax
mov ecx, 0x651a58
push esi
call fcn.0041a8b0
mov word [eax + 6], 1
mov dword [eax + 8], 0
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x70]
mov word [esp + 0x70], 0x7f49
push ecx
push esi
call fcn.004539d0
lea edx, [esp + 0x78]
mov word [esp + 0x78], 0x7f4a
push edx
push esi
call fcn.004539d0
lea eax, [esp + 0x80]
mov word [esp + 0x80], 0x7f43
push eax
push esi
call fcn.004539d0
lea ecx, [esp + 0x88]
mov word [esp + 0x88], 0x7f44
push ecx
push esi
call fcn.004539d0
lea edx, [esp + 0x90]
mov word [esp + 0x90], 0x7f45
push edx
push esi
call fcn.004539d0
lea eax, [esp + 0x98]
mov word [esp + 0x98], 0x7f46
push eax
push esi
call fcn.004539d0
lea ecx, [esp + 0xa0]
mov word [esp + 0xa0], 0x7f47
push ecx
push esi
call fcn.004539d0
lea edx, [esp + 0xa8]
mov word [esp + 0xa8], 0x7f48
push edx
push esi
call fcn.004539d0
mov edi, dword [esp + 0x5c]
add esp, 0x40
push 1
push ebx
push edi
call fcn.00412550
add esp, 8
push eax
push ebx
push edi
call fcn.00412540
add esp, 8
mov ecx, ebp
push eax
mov eax, dword [esp + 0x5b8]
push 4
push eax
call fcn.004917e0
push esi
push 0x484920
push ebx
push edi
call fcn.00412550
add esp, 8
push eax
push ebx
push edi
call fcn.00412540
add esp, 8
mov ecx, ebp
push eax
call fcn.00492580
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
push 1
push edi
push ebx
call fcn.00412550
add esp, 8
push eax
push edi
push ebx
call fcn.00412540
mov ecx, dword [esp + 0x5bc]
add esp, 8
push eax
push 4
push ecx
mov ecx, ebp
call fcn.004917e0
push esi
push 0x484920
push edi
push ebx
call fcn.00412550
add esp, 8
push eax
push edi
push ebx
call fcn.00412540
add esp, 8
mov ecx, ebp
push eax
call fcn.00492580
push esi
mov ecx, 0x651a58
call fcn.0041a860
lea edx, [esp + 0x200]
push edx
call fcn.00489a10
mov edi, dword [esp + 0x24]
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp case.0x4ad5e9.20065
cmp word [ebp + 0x3dc], 0
jne case.0x4ad5e9.20047
mov eax, dword [0x65af5c]
add edi, 0xffffcd6c
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [0x65af5c]
and edi, ebx
push eax
push edi
push 0x111
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.0x4ad5e9.20065
mov edx, dword [0x65af58]
add edi, 0xffffcd75
push edi
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
and edi, ebx
push eax
mov eax, dword [0x65af58]
push edi
push 0x111
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.0x4ad5e9.20065
push 0x10
mov edi, 4
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x4ae13b
mov edi, 5
sub si, 0x4e4e
mov ecx, dword [esp + 0x5ac]
neg si
sbb esi, esi
push 0
and esi, 2
push 1
add esi, 0x26
push edi
push esi
push ecx
mov ecx, ebp
call fcn.004b0a20
jmp case.0x4ad5e9.20065
push 0x10
mov edi, 4
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x4ae17c
mov edi, 5
sub si, 0x4e5e
mov edx, dword [esp + 0x5ac]
neg si
sbb esi, esi
push 0
and esi, 0xfffffffe
push 1
add esi, 0x27
push edi
push esi
push edx
mov ecx, ebp
call fcn.004b0a20
jmp case.0x4ad5e9.20065
mov eax, dword [ebp + 0x5f2]
mov ecx, dword [0x65af58]
cmp eax, ecx
jne 0x4ae1d3
xor eax, eax
mov ax, word [ebp + 0xf0]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp case.0x4ad5e9.20065
mov ecx, dword [0x65af5c]
cmp eax, ecx
jne case.0x4ad5e9.20065
xor edx, edx
mov dx, word [ebp + 0xf2]
push edx
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp case.0x4ad5e9.20065
mov ecx, ebp
call fcn.0049eb00
mov eax, dword [ebp + 0x394]
test eax, eax
je case.0x4ad5e9.20065
lea eax, [esp + 0xb0]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x1c]
push ecx
push edx
push 5
push 0
mov ecx, ebp
call fcn.00495550
mov ecx, ebp
call fcn.0049eb50
mov edi, dword [esp + 0x5ac]
mov ecx, ebp
push edi
call fcn.00493f00
mov ecx, dword [esp + 0x18]
push 0
lea eax, [esp + 0x17]
push 1
push eax
push ecx
mov ecx, ebp
mov byte [esp + 0x23], 0xd
call fcn.0049ec90
mov edx, dword [esp + 0x18]
mov ecx, ebp
push edx
call fcn.004af580
mov eax, dword [ebp + 0x418]
push 1
push eax
call fcn.00489850
mov edx, dword [ebp]
add esp, 8
mov ecx, ebp
push edi
call dword [edx + 0x64]
push 0xc
mov ecx, 0x651a58
call fcn.0041a700
mov esi, eax
mov ecx, 0x651a58
push esi
call fcn.0041a8b0
mov dword [eax + 8], 0
lea eax, [esp + 0x12c]
push eax
push esi
mov word [esp + 0x134], 0x7fe0
call fcn.004539d0
mov eax, dword [esp + 0x20]
add esp, 8
push esi
lea ecx, [eax + 1]
push 0x484920
push ecx
push eax
mov ecx, ebp
call fcn.00492580
push esi
mov ecx, 0x651a58
call fcn.0041a860
push 1
push edi
mov ecx, ebp
call fcn.0049aa40
mov eax, dword [esp + 0x18]
push 0x2b
push eax
push eax
push edi
mov ecx, ebp
call fcn.00494a50
mov dword [ebp + 0x90], eax
jmp case.0x4ad5e9.20065
mov ecx, ebp
call fcn.0049eb00
mov eax, dword [ebp + 0x394]
test eax, eax
je 0x4ae387
mov ecx, ebp
call fcn.0049eb50
mov edx, dword [0x655ff8]
push 5
push 0x14e2
push edx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
mov eax, dword [0x655ff8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, dword [esp + 0x5ac]
mov ecx, dword [0x655afc]
push 0
push esi
push 0
push 0x4a9fa0
push 1
push 0x65b658
push ecx
push edi
push eax
push esi
call fcn.0041ac10
add esp, 0x28
test eax, eax
je case.0x4ad5e9.20065
mov dx, word [0x65b688]
mov ecx, ebp
push edx
push esi
call fcn.004a8460
jmp case.0x4ad5e9.20065
mov ebx, dword [esp + 0x5ac]
mov esi, dword [ebx + 0x24]
add esi, ebx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
call fcn.00412540
add esp, 8
mov ecx, ebp
push eax
call fcn.00485020
mov edx, dword [esi + 8]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
push edx
push eax
call fcn.00412550
add esp, 8
mov ecx, ebp
push eax
call fcn.0048eae0
push eax
call fcn.00481a40
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp ecx, eax
mov dword [esp + 0x14], eax
mov word [esp + 0x12c], 0x7fe0
je 0x4ae427
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x12c]
push ecx
push edx
call fcn.00453820
add esp, 8
test eax, eax
je 0x4ae40e
mov eax, dword [esp + 0x12e]
test eax, eax
jne 0x4ae538
mov eax, dword [esp + 0x18]
push eax
call fcn.00481a40
mov ecx, dword [esp + 0x18]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x18], eax
jne 0x4ae3e6
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
sub eax, ecx
mov ecx, dword [0x655ff8]
neg eax
sbb eax, eax
push 5
and eax, 0x1e
add eax, 0x14c7
and eax, 0xffff
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edx, dword [0x655ff8]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ecx, dword [0x655afc]
push 0
push ebx
push 0
push 0x4a9e80
push 4
push 0x65bab8
push ecx
push edi
push eax
push ebx
mov dword [esp + 0x48], eax
mov word [0x65bc34], 0
call fcn.0041ac10
add esp, 0x28
test eax, eax
je 0x4ae528
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x14]
lea eax, [esp + 0x1c]
push edx
mov edx, dword [ebp + 4]
push eax
push ecx
push edx
call fcn.0048df70
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
mov ecx, dword [esp + 0x2c]
add esp, 0x10
push eax
xor eax, eax
cmp edx, edi
mov edx, dword [0x65bbc4]
push ecx
mov cx, word [0x65bc32]
setne al
push eax
mov ax, word [0x65bb56]
push ecx
mov cx, word [0x65bae8]
push edx
push eax
push ecx
push ebx
mov ecx, ebp
call fcn.00489200
mov esi, eax
push 0
push esi
push esi
mov ecx, ebp
call fcn.0049e6d0
push 0
push ebx
mov ecx, ebp
call fcn.0049aa40
mov ecx, ebp
call fcn.0049eb50
push 1
push ebx
mov ecx, ebp
call fcn.0049aa40
push 0x29
push esi
push esi
push ebx
mov ecx, ebp
call fcn.00494a50
mov dword [ebp + 0x90], eax
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp case.0x4ad5e9.20065
push 0x1d0d
push 0x40
push 0
call fcn.004c8a30
add esp, 0xc
jmp 0x4aef0d
mov eax, dword [0x655ff8]
push 5
push str.SORTTEXT
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov ecx, dword [0x655ff8]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edx, dword [0x655afc]
push 0
push 0
push 0
push 0x49bd50
push 1
push 0x65c170
push edx
push edi
mov dword [esp + 0x44], eax
push eax
mov eax, dword [esp + 0x5d0]
push eax
call fcn.0041ac10
add esp, 0x28
test eax, eax
je case.0x4ad5e9.20065
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 4]
push edx
push eax
push ecx
call fcn.0048df70
mov edx, dword [esp + 0x30]
add esp, 0x10
mov ecx, ebp
push edx
call fcn.004898d0
mov edi, eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, ebp
call fcn.004898b0
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x6c]
mov ebx, eax
push ecx
push edx
push ebx
mov dword [esp + 0x74], ebx
call fcn.00490a80
add esp, 4
push eax
push edi
call fcn.004952e0
add esp, 4
push eax
call fcn.0048df70
push edi
call fcn.004952e0
add esp, 0x14
mov ecx, ebp
push eax
call fcn.00484750
push ebx
mov esi, eax
call fcn.00490a80
add esp, 4
mov ecx, ebp
push eax
call fcn.00484750
push esi
mov ecx, ebp
mov dword [esp + 0x18], eax
call fcn.00484790
xor ecx, ecx
push esi
mov cx, word [eax + 6]
mov ebx, ecx
mov ecx, ebp
call fcn.00484790
cmp word [eax + ebx*8 + 8], 0x7f87
jne 0x4ae65e
push str.Cannot_sort_text_within_Table.
call fcn.00454a60
add esp, 4
jmp case.0x4ad5e9.20065
cmp esi, dword [esp + 0x14]
je 0x4ae6b3
push esi
mov ecx, ebp
call fcn.00484790
xor edx, edx
push esi
mov dx, word [eax + 6]
mov ecx, ebp
mov ebx, edx
call fcn.00484790
cmp word [eax + ebx*8 + 8], 0x7f87
je 0x4ae69a
push esi
call fcn.00481a40
mov esi, eax
mov eax, dword [esp + 0x18]
add esp, 4
cmp esi, eax
jne 0x4ae664
jmp 0x4ae6b3
push str.Cannot_sort_text_which_contains_Tables.
call fcn.00454a60
mov eax, dword [esp + 0x18]
add esp, 4
cmp esi, eax
jne 0x4ae7a1
mov ax, word [ebp + 0x96]
mov ecx, ebp
push eax
call fcn.0048fa90
mov ebx, dword [esp + 0x5ac]
mov edx, dword [ebp]
push ebx
mov ecx, ebp
mov esi, eax
call dword [edx + 0x64]
mov eax, dword [ebp]
push ebx
mov ecx, ebp
call dword [eax + 0x40]
push ebx
mov ecx, ebp
call fcn.00493f00
cmp dword [esp + 0x1c], esi
jne 0x4ae71b
push 0
push 1
lea ecx, [esi - 1]
push 0x5016c0
push ecx
mov ecx, ebp
call fcn.0049ec90
mov edx, dword [esp + 0x20]
mov ecx, ebp
push edx
call fcn.004898d0
mov edi, eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, ebp
call fcn.004898b0
jmp 0x4ae71f
mov eax, dword [esp + 0x68]
mov ecx, dword [0x65c294]
lea edx, [esp + 0x14]
neg ecx
sbb ecx, ecx
mov byte [esp + 0x14], 4
and ecx, edx
mov byte [esp + 0x15], 0xe9
push ecx
push eax
mov ecx, ebp
mov byte [esp + 0x1e], 0
call fcn.004a1010
push eax
call fcn.00486c50
add esp, 8
mov ecx, ebp
push eax
push edi
call fcn.004a1010
push eax
call fcn.00486c50
add esp, 8
mov ecx, ebp
push eax
call fcn.004ad310
cmp dword [esp + 0x1c], esi
jne 0x4ae77d
push 0
push esi
dec esi
mov ecx, ebp
push esi
push ebx
call fcn.004903e0
push 1
push ebx
mov ecx, ebp
call fcn.0049aa40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
push 0x29
push eax
push ecx
push ebx
mov ecx, ebp
call fcn.00494a50
mov dword [ebp + 0x90], eax
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp case.0x4ad5e9.20065
mov eax, dword [0x655ff8]
push 5
push 0x14e1
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov ecx, dword [0x655ff8]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edx, dword [0x655afc]
mov esi, eax
xor eax, eax
push eax
push eax
push eax
push 0x4a9e80
push 5
push 0x65b888
mov word [0x65ba70], ax
mov word [0x65b8b8], ax
mov eax, dword [esp + 0x5c4]
push edx
push edi
push esi
push eax
call fcn.0041ac10
add esp, 0x28
push esi
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp case.0x4ad5e9.20065
mov ecx, dword [0x655ff8]
mov esi, dword [esp + 0x5ac]
push 5
push 0x14e0
push ecx
mov dword [esp + 0x210], esi
mov dword [esp + 0x20c], 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edx, dword [0x655ff8]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edx, dword [0x655afc]
mov ebx, eax
mov ax, word [0x65a298]
lea ecx, [esp + 0x200]
push eax
push ecx
push fcn.00489930
push 0x4a9e50
push 9
push 0x65bca8
push edx
push edi
push ebx
push esi
call fcn.0041ac10
add esp, 0x28
test eax, eax
je 0x4ae899
lea eax, [esp + 0x200]
mov ecx, ebp
push eax
push esi
call fcn.00491fe0
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp case.0x4ad5e9.20065
mov ecx, dword [esp + 0x5ac]
push ecx
mov ecx, ebp
call fcn.00492920
jmp case.0x4ad5e9.20065
mov edx, dword [esp + 0x5ac]
push fcn.00481d70
push edx
mov ecx, ebp
call fcn.00492980
jmp case.0x4ad5e9.20065
mov eax, dword [esp + 0x5ac]
push fcn.00481e00
push eax
mov ecx, ebp
call fcn.00492980
jmp case.0x4ad5e9.20065
mov ecx, dword [esp + 0x5ac]
push fcn.00481e90
push ecx
mov ecx, ebp
call fcn.00492980
jmp case.0x4ad5e9.20065
mov eax, dword [esp + 0x5ac]
xor edx, edx
cmp word [ebp + 0x3dc], cx
mov ecx, ebp
setne dl
push edx
push eax
call fcn.00498880
jmp case.0x4ad5e9.20065
mov ecx, dword [esp + 0x5ac]
push ecx
mov ecx, ebp
call fcn.00483fa0
jmp case.0x4ad5e9.20065
mov eax, dword [0x655c02]
test eax, eax
je 0x4ae94e
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
jmp case.0x4ad5e9.20065
push 0x1e0
call fcn.00406c00
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x5a4], 4
je 0x4ae976
push 0
mov ecx, eax
call fcn.004358c0
jmp 0x4ae978
xor eax, eax
push 0
push 0x14e8
mov ecx, eax
mov dword [esp + 0x5ac], 0xffffffff
mov dword [0x65c28c], eax
call sub.MFC42.DLL_CDialog::Create
jmp case.0x4ad5e9.20065
cmp word [ebp + 0x96], bx
je case.0x4ad5e9.20065
cmp word [0x655b00], 0
jne case.0x4ad5e9.20065
mov esi, dword [esp + 0x5ac]
mov edx, dword [ebp]
push esi
mov ecx, ebp
call dword [edx + 0x64]
push 0x1cf5
mov ecx, ebp
call fcn.004850c0
mov ecx, ebp
call fcn.0049e5f0
mov edi, dword [ebp + 4]
mov ebx, dword [ebp + 8]
push esi
mov ecx, ebp
call fcn.00493f00
mov ax, word [ebp + 0x96]
push 2
push eax
push esi
mov ecx, ebp
call fcn.00492a20
push 0x2b
push ebx
push edi
push esi
mov ecx, ebp
call fcn.00494a50
mov dword [ebp + 0x90], eax
jmp case.0x4ad5e9.20065
cmp word [ebp + 0x96], bx
je case.0x4ad5e9.20065
mov esi, dword [esp + 0x5ac]
mov edx, dword [ebp]
push esi
mov ecx, ebp
call dword [edx + 0x64]
mov eax, dword [ebp]
push esi
mov ecx, ebp
call dword [eax + 0x40]
mov cx, word [ebp + 0x96]
push ecx
push esi
mov ecx, ebp
call fcn.00492bb0
jmp case.0x4ad5e9.20065
mov eax, dword [esp + 0x5ac]
push 3
lea edx, [esp + 0x17]
push ecx
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x23], 2
call fcn.0048d240
jmp case.0x4ad5e9.20065
mov edx, dword [esp + 0x5ac]
push 3
push ecx
lea ecx, [esp + 0x1b]
push ecx
push edx
mov ecx, ebp
mov byte [esp + 0x23], 6
call fcn.0048d240
jmp case.0x4ad5e9.20065
mov esi, dword [esp + 0x5ac]
lea eax, [esp + 0xec]
lea ecx, [esp + 0x12c]
push eax
push ecx
push esi
mov ecx, ebp
mov dword [esp + 0x13c], esi
mov dword [esp + 0x138], 0
mov word [esp + 0xf8], 0x7f42
call fcn.0049b010
test eax, eax
jne 0x4aead1
xor ax, ax
jmp 0x4aead9
mov ax, word [esp + 0xee]
xor edx, edx
lea ecx, [esp + 0x12c]
test ax, ax
lea eax, [esp + 0xec]
push eax
push ecx
sete dl
push esi
push 0
mov ecx, ebp
mov word [esp + 0xfe], dx
call fcn.004918c0
lea edx, [esp + 0x12c]
jmp 0x4aeefa
mov esi, dword [esp + 0x5ac]
push 0
push 9
push esi
mov ecx, ebp
call fcn.00498a30
test eax, eax
je case.0x4ad5e9.20065
push 3
lea eax, [esp + 0x17]
push 1
push eax
push esi
mov ecx, ebp
mov byte [esp + 0x23], 9
call fcn.0048d240
jmp case.0x4ad5e9.20065
mov eax, dword [0x655c06]
test eax, eax
je 0x4aeb73
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov ecx, dword [0x655c06]
push 0
push 0x1c53
push 0x111
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.0x4ad5e9.20065
push 0x220
call fcn.00406c00
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x5a4], 5
je 0x4aeb9b
push 0
mov ecx, eax
call fcn.0047f730
jmp 0x4aeb9d
xor eax, eax
push 0
push 0x14da
mov ecx, eax
mov dword [esp + 0x5ac], 0xffffffff
mov dword [0x65c288], eax
call sub.MFC42.DLL_CDialog::Create
jmp case.0x4ad5e9.20065
mov edx, dword [esp + 0x5ac]
lea esi, [edi - 0x4e8f]
cmp esi, 0x96
mov dword [esp + 0x2cc], edx
mov dword [esp + 0x2c8], 0
mov ebx, 0x7f8a
ja case.0x4aebf4.20116
xor eax, eax
mov al, byte [esi + 0x4af0dc]
jmp dword [eax*4 + 0x4af0c4]
mov word [esp + 0x28], 0x7f00
jmp case.0x4aebf4.20116
mov word [esp + 0x28], 0x7f01
jmp case.0x4aebf4.20116
mov word [esp + 0x28], bx
jmp case.0x4aebf4.20116
mov word [esp + 0x28], 0x7f05
jmp case.0x4aebf4.20116
mov word [esp + 0x28], 0x7f06
mov eax, dword [esp + 0x5ac]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x2c8]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.0049b010
cmp esi, 0x96
ja case.0x4aec54.9
xor ecx, ecx
mov cl, byte [esi + 0x4af19c]
jmp dword [ecx*4 + 0x4af174]
mov eax, dword [esp + 0x2a]
mov edx, eax
shr edx, 0x10
cmp edx, 0x3fff
jne 0x4aec8f
mov cx, word [0x65959c]
add ax, 0x64
cmp ax, cx
mov word [esp + 0x2a], ax
jle case.0x4aec54.9
mov word [esp + 0x2a], cx
jmp case.0x4aec54.9
mov ecx, dword [0x659586]
add eax, 0x7d0
cmp eax, ecx
mov dword [esp + 0x2a], eax
jle case.0x4aec54.9
jmp 0x4aeec6
mov eax, dword [esp + 0x2a]
mov ecx, eax
shr ecx, 0x10
cmp ecx, 0x3fff
jne 0x4aecdf
mov cx, word [0x65959a]
add ax, 0xff9c
cmp ax, cx
mov word [esp + 0x2a], ax
jge case.0x4aec54.9
mov word [esp + 0x2a], cx
jmp case.0x4aec54.9
mov ecx, dword [0x659582]
sub eax, 0x7d0
cmp eax, ecx
mov dword [esp + 0x2a], eax
jge case.0x4aec54.9
jmp 0x4aeec6
mov eax, dword [esp + 0x2a]
mov ecx, dword [0x659518]
add eax, 0x7d0
cmp eax, ecx
mov dword [esp + 0x2a], eax
jle case.0x4aec54.9
jmp 0x4aeec6
mov eax, dword [esp + 0x2a]
mov ecx, dword [0x659514]
sub eax, 0x7d0
cmp eax, ecx
mov dword [esp + 0x2a], eax
jge case.0x4aec54.9
jmp 0x4aeec6
mov ax, word [esp + 0x2a]
add ax, 0x32
movsx edx, ax
mov word [esp + 0x2a], ax
mov eax, dword [0x6595f4]
cmp edx, eax
jle case.0x4aec54.9
mov word [esp + 0x2a], ax
jmp case.0x4aec54.9
mov ax, word [esp + 0x2a]
add ax, 0xffce
movsx ecx, ax
mov word [esp + 0x2a], ax
mov eax, dword [0x6595f0]
cmp ecx, eax
jge case.0x4aec54.9
mov word [esp + 0x2a], ax
jmp case.0x4aec54.9
mov ecx, dword [esp + 0x2a]
test ecx, ecx
jne 0x4aedf5
mov ecx, dword [esp + 0x5ac]
lea edx, [esp + 0x28]
lea eax, [esp + 0x2c8]
push edx
push eax
push ecx
mov ecx, ebp
mov word [esp + 0x34], 0x7f00
call fcn.0049b010
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x358]
push edx
push eax
mov word [esp + 0x360], 0x7f8c
call fcn.00453820
mov ecx, dword [esp + 0x362]
mov edx, dword [esp + 0x32]
push ecx
push edx
call fcn.004021e0
mov ecx, dword [esp + 0x3a]
add esp, 0x10
add ecx, eax
mov word [esp + 0x28], bx
mov dword [esp + 0x2a], ecx
sub edi, 0x4f22
je 0x4aee24
dec edi
jne case.0x4aec54.9
mov eax, dword [0x65989a]
add ecx, 0x3e8
cmp ecx, eax
mov dword [esp + 0x2a], ecx
jle case.0x4aec54.9
mov dword [esp + 0x2a], eax
jmp case.0x4aec54.9
mov eax, dword [0x659896]
sub ecx, 0x3e8
cmp ecx, eax
mov dword [esp + 0x2a], ecx
jge case.0x4aec54.9
mov dword [esp + 0x2a], eax
jmp case.0x4aec54.9
mov eax, dword [esp + 0x2a]
mov ecx, eax
shr ecx, 0x10
cmp ecx, 0x3fff
jne 0x4aee71
mov cx, word [0x6594c0]
add ax, 0xa
cmp ax, cx
mov word [esp + 0x2a], ax
jle case.0x4aec54.9
mov word [esp + 0x2a], cx
jmp case.0x4aec54.9
mov ecx, dword [0x6594aa]
add eax, 0x7d0
cmp eax, ecx
mov dword [esp + 0x2a], eax
jle case.0x4aec54.9
jmp 0x4aeec6
mov eax, dword [esp + 0x2a]
mov edx, eax
shr edx, 0x10
cmp edx, 0x3fff
jne 0x4aeeb3
mov cx, word [0x6594be]
add ax, 0xfff6
cmp ax, cx
mov word [esp + 0x2a], ax
jge case.0x4aec54.9
mov word [esp + 0x2a], cx
jmp case.0x4aec54.9
mov ecx, dword [0x6594a6]
sub eax, 0x7d0
cmp eax, ecx
mov dword [esp + 0x2a], eax
jge case.0x4aec54.9
mov dword [esp + 0x2a], ecx
mov esi, dword [esp + 0x5ac]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x2c8]
push eax
push ecx
push esi
push 0
mov ecx, ebp
call fcn.004918c0
mov dword [esp + 0x2c8], 2
lea edx, [esp + 0x2c8]
push edx
push esi
mov ecx, ebp
call fcn.00491fe0
mov dword [0x65a270], 0
mov ecx, dword [esp + 0x59c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x598
ret 8