Function at 0x40ed60
Capabilities:
Check for time delay via gettickcount
Encrypt data using speck

Disassembly:
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov di, word [esp + 0x140]
mov esi, ecx
mov dword [esp + 0x2c], edx
mov eax, 0x7fff
mov edx, dword [esp + 0x148]
mov dword [esp + 0x14], esi
movzx ebp, di
mov dword [esp + 0x54], eax
cmp edx, 0xffc3d44f
je 0x40edac
cmp edx, 0xffc3d44e
je 0x40edac
mov byte [esp + 0x22], 0
cmp edx, 0xffc3d44d
jne 0x40edb1
mov byte [esp + 0x22], 1
mov ecx, dword [0x4e8c04]
mov ebx, dword [esp + 0x13c]
test ecx, ecx
jne 0x40edcf
lea eax, [esp + 0x5c]
mov dword [esp + 0x1c], eax
jmp 0x40ee93
mov eax, dword [0x4e8c34]
imul esi, eax, 0xd4
inc eax
add esi, ecx
xor ecx, ecx
cmp eax, dword [0x4e479c]
mov dword [esp + 0x1c], esi
cmovge eax, ecx
mov ecx, dword [esp + 0x144]
mov dword [0x4e8c34], eax
mov byte [esi], bl
mov byte [esi + 6], cl
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, eax
mov dword [0x4e8c30], eax
sub ecx, dword [0x4ea594]
mov dword [0x4ea594], eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4dcaf0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4dca04]
movss dword [esi + 8], xmm0
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xc]
test esi, esi
je 0x40ee75
cmp esi, dword [0x4e8c2c]
je 0x40ee6e
push esi
push ecx
push 0x418
push dword [0x4e8bf4]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esp + 0x1c]
jmp 0x40ee82
xor edx, edx
mov word [ecx], dx
jmp 0x40ee82
mov dword [ecx], 0x2f004e
mov dword [ecx + 4], 0x41
mov edx, dword [esp + 0x148]
mov dword [0x4e8c2c], esi
mov esi, dword [esp + 0x14]
cmp bl, 0xe7
jne 0x40eeea
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x138]
push 0x7fff
push ebx
push edx
push dword [esp + 0x150]
mov ax, word [ecx + 4]
mov edx, dword [esp + 0x3c]
push 0
push 0xe7
push ecx
push dword [esp + 0x150]
mov word [ebx + 2], ax
mov ecx, esi
mov eax, 0x55
mov word [ebx + 4], ax
call fcn.00410990
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov word [eax + 2], di
mov cl, 3
mov edi, dword [0x4ea730]
mov al, bl
add al, 0x64
mov esi, 0x20
cmp cl, al
sbb eax, eax
and eax, ebp
mov ebp, dword [esp + 0x14]
movzx eax, ax
mov dword [esp + 0x24], eax
cmp ebp, dword [0x4e8e30]
jne 0x40ef4a
mov cl, byte [esp + 0x14c]
and cl, 1
mov dword [esp + 0x44], ecx
jne 0x40efd1
mov al, byte [esp + 0x144]
movzx ecx, bl
xor al, 1
shl al, 7
mov byte [ecx + 0x4e8e40], al
mov ecx, dword [esp + 0x44]
jmp 0x40efd1
mov edx, dword [esp + 0x14c]
mov ecx, edx
movzx ebp, bl
shr ecx, 4
and ecx, 0xffffff01
mov dword [esp + 0x44], ecx
lea eax, [ebp*4]
add eax, ebp
cmp byte [edi + eax*4 + 8], 0
jne 0x40efcd
test dl, 0x10
jne 0x40efcd
cmp bl, 0xa0
je 0x40ef82
cmp bl, 0xa1
jne 0x40efa1
cmp byte [esp + 0x144], 0
jne 0x40efa1
cmp bl, 0xa0
mov eax, esi
mov edx, 0x10
cmove eax, edx
test byte [0x4e8e3d], al
jne 0x40efcd
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov edi, dword [0x4ea730]
mov ecx, dword [esp + 0x44]
mov dword [0x4ea704], eax
mov dword [0x4ea700], eax
mov al, byte [esp + 0x144]
xor al, 1
shl al, 7
mov byte [ebp + 0x4e8e40], al
mov ebp, dword [esp + 0x14]
mov dl, byte [esp + 0x22]
test dl, dl
je 0x40efe0
mov eax, 0x69
jmp 0x40efed
mov eax, 0x61
test cl, cl
cmovne esi, eax
movzx eax, si
cmp byte [0x4e8e2f], 0
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + 4]
mov word [esi], ax
mov dword [esp + 0x4c], esi
je 0x40f038
cmp bl, 0x5b
je 0x40f00e
cmp bl, 0x5c
jne 0x40f038
mov eax, dword [esp + 0x144]
test al, al
jne 0x40f03f
mov edi, dword [esp + 0x148]
push 0
push SysReAllocString
push 0x7fff
push ecx
push edi
push 0
push ecx
mov ecx, ebp
jmp 0x4107da
mov eax, dword [esp + 0x144]
cmp byte [0x4ea722], 0
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebp, dword [sym.imp.USER32.dll_FindWindowW]
je 0x40f0f8
cmp bl, 0x1b
jne 0x40f0f8
test al, al
jne 0x40f0f8
push 0
push str.32771
call ebp
test eax, eax
je 0x40f0ee
push 0
push eax
call esi
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
cmp esi, eax
jne 0x40f0e8
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
xor ecx, ecx
call fcn.00419c40
mov dl, byte [0x4e8f40]
mov ecx, 1
push 0xffc3d44d
shr dl, 3
push 0
and dl, 1
push 0
push 0
or dl, 0xa4
call fcn.00419c40
mov edi, dword [esp + 0x168]
add esp, 0x20
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push edi
push 0
push ecx
mov ecx, dword [esp + 0x30]
push 0x1b
jmp 0x4107db
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edi, dword [0x4ea730]
mov dl, byte [esp + 0x22]
mov eax, dword [esp + 0x24]
movzx eax, ax
mov dword [esp + 0x44], eax
lea ecx, [eax + eax*4]
mov eax, dword [0x4ea734]
mov dh, byte [eax + ecx*4 + 0x13]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x23], dh
cmp ecx, dword [0x4e8e34]
jne 0x40f12a
test dh, dh
jne 0x40f137
movzx eax, bl
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
mov dword [esp + 0x3c], eax
test dl, dl
je 0x40f1a9
mov edx, dword [esp + 0x148]
cmp edx, 0xffc3d44e
jne 0x40f16e
cmp byte [esp + 0x144], 0
je 0x40f16e
cmp dword [0x4e8f50], eax
jne 0x40f16e
mov byte [eax + 0xd], 0
mov byte [eax + 0x10], 0
mov dword [0x4e8f50], 0
push 0x7fff
push dword [esp + 0x20]
push edx
push dword [esp + 0x150]
mov edx, dword [esp + 0x3c]
push dword [esp + 0x34]
push ebx
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.00410990
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov edx, dword [esp + 0x144]
mov ecx, 0x7fff
mov dword [esp + 0x58], ecx
test dl, dl
jne 0x40f1c4
mov byte [eax + 0x11], dl
mov word [eax + 4], cx
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e30]
jne 0x40f255
test bl, bl
jne 0x40f217
mov edi, dword [esp + 0x148]
mov ecx, eax
push 0x7fff
push dword [esp + 0x20]
push edi
push edx
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
push 0
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.00410990
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
cmp bl, 1
je 0x40f221
cmp bl, 2
jne 0x40f255
cmp dword [0x4e8bcc], 0
jne 0x40f292
push 0
push str.32768
call ebp
test eax, eax
je 0x40f244
push 0
push eax
call esi
cmp eax, dword [0x4e9e38]
je 0x40f28b
mov edi, dword [0x4ea730]
mov edx, dword [esp + 0x144]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x4e8f50]
mov ebp, dword [esp + 0x3c]
test ecx, ecx
je 0x40f2f2
cmp ecx, ebp
je 0x40f2f2
test dl, dl
jne 0x40f2f2
cmp byte [ecx + 0x12], 0xff
je 0x40f2f2
cmp eax, dword [0x4e8e34]
jne 0x40f2e1
xor eax, eax
cmp byte [ebp + 8], al
sete al
jmp 0x40f2ea
mov edx, dword [esp + 0x144]
mov ecx, dword [esp + 0x3c]
mov al, dl
mov edi, dword [esp + 0x148]
xor al, 1
push 0x7fff
push dword [esp + 0x20]
mov byte [ecx + 0x10], 0
push edi
mov byte [ecx + 0xd], al
push edx
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
push ebx
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.00410990
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov eax, dword [0x4e8f50]
movzx eax, byte [eax + 8]
test eax, eax
je 0x40f2f2
mov byte [ecx + 0x12], 1
cmp byte [ebp + 9], 0
jne 0x40f345
cmp byte [ebp + 0xa], 0
jne 0x40f345
mov edi, dword [esp + 0x148]
mov al, dl
mov ecx, dword [esp + 0x14]
xor al, 1
push 0x7fff
push dword [esp + 0x20]
mov byte [ebp + 0xd], al
push edi
push edx
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
push ebx
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.00410990
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov dword [esp + 0x40], 0
mov esi, 0x7fff
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x11], 0
test dl, dl
je 0x40f3a1
mov ch, byte [ebp + 0x10]
mov al, byte [ebp + 0xd]
mov byte [esp + 0x13], al
movzx eax, word [ebp + 4]
mov byte [esp + 0x2b], ch
mov ecx, esi
mov byte [ebp + 0x10], 0
cmp ax, cx
je 0x40f38e
mov esi, eax
mov word [ebp + 4], cx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov al, byte [ebp + 0xc]
test al, 8
je 0x40f3b1
and al, 0xf7
mov byte [esp + 0x11], 1
mov byte [ebp + 0xc], al
jmp 0x40f3b1
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
mov al, byte [esp + 0x13]
mov byte [esp + 0x2b], al
mov al, dl
xor cl, cl
xor al, 1
mov byte [ebp + 0xd], al
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e34]
jne 0x40f42f
cmp byte [ebp + 8], cl
je 0x40f455
cmp byte [edi + 0xcb5], cl
jne 0x40f3e3
cmp byte [edi + 0xcc9], cl
jne 0x40f3e3
xor al, al
jmp 0x40f3e5
mov al, 1
cmp byte [edi + 0xcdd], 0
mov byte [edi + 0x161], al
jne 0x40f401
cmp byte [edi + 0xcf1], 0
jne 0x40f401
xor al, al
jmp 0x40f403
mov al, 1
cmp byte [edi + 0xc8d], 0
mov byte [edi + 0x175], al
jne 0x40f425
cmp byte [edi + 0xca1], 0
jne 0x40f425
xor al, al
mov byte [edi + 0x14d], al
jmp 0x40f455
mov al, 1
mov byte [edi + 0x14d], al
jmp 0x40f455
cmp dword [0x4e8e34], 0
jne 0x40f455
mov cl, 1
call fcn.0041c350
mov edi, dword [0x4ea730]
mov ah, al
mov byte [0x4e8e3f], ah
mov cl, 1
mov byte [0x4e8f40], ah
mov eax, dword [ebp]
test eax, eax
je 0x40f466
cmp dword [eax], 6
mov byte [esp + 0x22], 1
je 0x40f46b
mov byte [esp + 0x22], 0
test cl, cl
jne 0x40f47c
mov cl, 1
call fcn.0041c350
mov edi, dword [0x4ea730]
mov al, byte [ebp + 9]
mov ecx, dword [esp + 0x144]
test al, al
je 0x40f85a
test cl, cl
jne 0x40f85a
mov ecx, dword [0x4e8f50]
test ecx, ecx
je 0x40f4ae
cmp byte [ebp + 0xa], 0
je 0x40f4ae
cmp ebp, ecx
jne 0x40f853
mov dh, byte [ebp + 0xc]
shr dh, 4
not dh
and dh, 1
mov byte [esp + 0x1b], dh
cmp al, 1
jne 0x40f623
cmp byte [esp + 0x23], 0
mov ecx, dword [esp + 0x44]
jne 0x40f4d3
movzx ecx, bl
xor edx, edx
movzx eax, cx
cmp byte [esp + 0x23], dl
mov dword [esp + 0x48], ecx
cmovne edx, eax
movzx eax, cl
xor ecx, ecx
cmp byte [esp + 0x23], cl
push 0
cmovne eax, ecx
mov cl, al
call fcn.0041c570
mov dh, al
xor dl, dl
xor esi, esi
mov byte [esp + 0x16], dh
xor eax, eax
mov byte [esp + 0x37], dl
add esp, 4
mov dword [esp + 0x50], esi
cmp ax, word [0x4e8f80]
jae 0x40f67f
nop dword [eax]
cmp byte [esp + 0x23], 0
mov ecx, dword [0x4e8f70]
mov edi, dword [ecx + esi*4]
je 0x40f536
movzx eax, word [edi + 0xa]
jmp 0x40f53a
movzx eax, byte [edi + 0x11]
cmp dword [esp + 0x48], eax
je 0x40f549
test byte [edi + 0xe], dh
je 0x40f602
cmp word [edi + 6], 0
je 0x40f585
cmp byte [edi + 0x19], 0
je 0x40f602
cmp byte [0x4e8e29], 0
jne 0x40f602
test byte [edi + 0x13], 1
mov dh, byte [esp + 0x1b]
jne 0x40f61d
test dh, dh
jne 0x40f61d
mov dl, 1
mov byte [esp + 0x33], dl
jmp 0x40f5fe
mov esi, dword [edi + 0x20]
mov eax, esi
test eax, eax
je 0x40f602
nop
cmp byte [eax + 0x20], 0
jne 0x40f59f
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x40f590
jmp 0x40f602
test dl, dl
je 0x40f5b0
test byte [edi + 0x13], 1
je 0x40f602
nop dword [eax]
cmp byte [esi + 0x20], 0
je 0x40f5f7
cmp byte [0x4e8e29], 0
je 0x40f5c5
cmp byte [esi + 0x21], 0
je 0x40f5f7
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40f5d8
mov edx, dword [edi + 0x1c]
call fcn.00413ab0
test eax, eax
je 0x40f5f3
test byte [esi + 0x1d], 1
mov dh, byte [esp + 0x1b]
jne 0x40f61d
test dh, dh
jne 0x40f61d
mov dl, 1
mov byte [esp + 0x33], dl
test byte [edi + 0x13], dl
je 0x40f5fe
jmp 0x40f5f7
mov dl, byte [esp + 0x33]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x40f5b0
mov dh, byte [esp + 0x12]
mov ecx, dword [esp + 0x50]
movzx eax, word [0x4e8f80]
inc ecx
mov dword [esp + 0x50], ecx
cmp ecx, eax
jge 0x40f679
mov esi, ecx
jmp 0x40f520
mov edi, dword [0x4ea730]
mov byte [esp + 0x12], 0
cmp ebp, dword [0x4e8f50]
je 0x40f63a
mov dword [0x4e8f50], ebp
mov byte [ebp + 0x12], 0
cmp byte [ebp + 0xa], 0
je 0x40f7de
mov al, byte [ebp + 8]
mov dl, byte [0x4e8e3f]
test al, al
je 0x40f655
not al
and dl, al
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e34]
jne 0x40f690
cmp byte [esp + 0x23], 0
je 0x40f690
mov eax, dword [0x4ea728]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x44]
jmp 0x40f6a0
mov edi, dword [0x4ea730]
mov dh, dl
mov byte [esp + 0x1b], dh
test dl, dl
jne 0x40f623
mov byte [esp + 0x12], 1
jmp 0x40f63a
movzx ecx, dl
movzx eax, bl
shl ecx, 8
add ecx, eax
mov eax, dword [0x4ea724]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
movzx esi, cx
and eax, 0x7fff
mov dword [esp + 0x34], esi
add eax, 0xffff8006
mov dword [esp + 0x38], esi
cmp ax, 4
jbe 0x40f7ec
mov eax, 0x7fff
cmp cx, ax
je 0x40f7ec
test dh, dh
jne 0x40f6e0
mov byte [ebp + 0x12], 0xff
jmp 0x40f7b5
test dl, dl
jne 0x40f7b5
mov edi, dword [esp + 0x148]
lea eax, [esp + 0x11]
push 0
push eax
lea eax, [esp + 0x3b]
push eax
push edi
lea ecx, [esp + 0x48]
call fcn.00414490
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
je 0x40f720
cmp byte [esp + 0x11], 0
je 0x40f720
mov esi, dword [esp + 0x38]
jmp 0x40f7a7
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
cmp ax, word [0x4e8f80]
jae 0x40f79e
mov ecx, dword [0x4ea72c]
movzx esi, ax
mov eax, 0x7fff
add esi, esi
add ecx, esi
cmp word [ecx], ax
je 0x40f79e
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
lea eax, [esp + 0x3b]
xor dl, dl
push eax
push edi
call fcn.00414490
add esp, 0x10
test eax, eax
je 0x40f79e
cmp byte [esp + 0x11], 0
je 0x40f79e
cmp dword [esp + 0x40], 0
mov edi, dword [0x4ea730]
mov dh, byte [esp + 0x1b]
je 0x40f78b
mov esi, dword [esp + 0x34]
mov byte [esp + 0x11], 0
jmp 0x40f7b5
mov dword [esp + 0x40], eax
mov eax, dword [0x4ea72c]
movzx esi, word [esi + eax]
mov dword [esp + 0x38], esi
jmp 0x40f7b1
mov esi, 0x7fff
mov dword [esp + 0x38], esi
mov edi, dword [0x4ea730]
mov dh, byte [esp + 0x1b]
mov dword [esp + 0x34], esi
test esi, 0x8000
je 0x40f7c3
mov word [ebp + 4], si
jmp 0x40f7ec
cmp si, word [0x4e8f80]
jae 0x40f7e2
mov eax, dword [0x4ea72c]
movzx ecx, si
mov ax, word [eax + ecx*2]
mov word [ebp + 4], ax
jmp 0x40f7e2
mov esi, dword [esp + 0x34]
mov eax, 0x7fff
cmp si, ax
jne 0x40f853
cmp byte [esp + 0x12], 0
je 0x40f7ff
mov eax, dword [esp + 0x4c]
mov ecx, 0x23
mov word [eax], cx
test dh, dh
jne 0x40f807
or byte [ebp + 0xc], 8
cmp byte [ebp + 8], 0
jne 0x40f83b
test dh, dh
je 0x40f83b
cmp byte [esp + 0x22], 0
jne 0x40f83b
mov edi, dword [esp + 0x148]
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
mov byte [ebp + 0x11], 1
push edi
push 0
jmp 0x4107d5
mov edi, dword [esp + 0x148]
push 0x7fff
push dword [esp + 0x20]
push edi
push 0
jmp 0x40f2b3
mov ecx, dword [esp + 0x144]
cmp byte [ebp + 0xa], 0
mov byte [esp + 0x12], 0
je 0x40f8ce
test cl, cl
je 0x40f8ce
mov al, byte [esp + 0x2b]
cmp dword [0x4e8f50], ebp
jne 0x40f883
test al, al
je 0x40f8ce
mov dword [0x4e8f50], 0
cmp byte [ebp + 0xb], 0
jne 0x40f8c9
test al, al
je 0x40f8b2
cmp byte [esp + 0x11], 0
jne 0x40f8b2
mov edi, dword [esp + 0x148]
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push edi
push ecx
jmp 0x4107d5
mov edi, dword [esp + 0x148]
push 0x7fff
push dword [esp + 0x20]
push edi
push ecx
jmp 0x40f2b3
mov byte [esp + 0x12], 1
cmp byte [ebp + 9], 0
je 0x40fa0a
test cl, cl
je 0x40fa0a
mov ecx, dword [0x4e8f50]
xor eax, eax
cmp ecx, ebp
cmove ecx, eax
mov dword [0x4e8f50], ecx
cmp byte [ebp + 0xe], al
je 0x40f916
push 0xffc3d44d
push eax
push eax
push eax
mov dl, 0x12
mov byte [ebp + 0xe], al
lea ecx, [eax + 1]
call fcn.00419c40
mov edi, dword [0x4ea730]
add esp, 0x10
cmp byte [ebp + 0xf], 0
je 0x40f940
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov byte [ebp + 0xf], 0
mov ecx, 1
call fcn.00419c40
mov edi, dword [0x4ea730]
add esp, 0x10
mov cl, byte [esp + 0x22]
mov al, byte [ebp + 0x12]
test cl, cl
je 0x40f9c7
cmp al, 2
jne 0x40f9a6
mov ebp, dword [esp + 0x24]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push ebp
mov ecx, 1
call fcn.00419c40
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 2
call fcn.00419c40
add esp, 0x20
mov edi, dword [esp + 0x148]
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push edi
push dword [esp + 0x158]
jmp 0x4107d5
cmp al, 1
jne 0x40f9e4
mov edi, dword [esp + 0x148]
push 0x7fff
push dword [esp + 0x20]
push edi
push dword [esp + 0x150]
jmp 0x40f2b3
test al, al
jle 0x40f9e4
mov eax, 0x7fff
cmp si, ax
jne 0x40f9e4
cmp byte [ebp + 8], 0
jne 0x40f9aa
cmp byte [esp + 0x11], 0
jne 0x40f9aa
jmp 0x40f982
cmp byte [ebp + 0xa], 0
jne 0x40f9fd
cmp byte [ebp + 8], 0
jne 0x40f9aa
cmp byte [esp + 0x11], 0
jne 0x40f9aa
test cl, cl
jne 0x40f9aa
jmp 0x40f982
cmp byte [esp + 0x13], 0
jne 0x40fa0a
cmp byte [ebp + 0xb], 0
je 0x40f9aa
cmp dword [0x4e8f50], 0
mov edx, 0x7ffd
je 0x40fdff
mov ecx, dword [esp + 0x144]
test cl, cl
je 0x40fa31
cmp byte [ebp + 0xb], 0
je 0x40fdff
mov eax, 0x7fff
cmp si, ax
jne 0x4101a1
movzx ebp, word [ebp + 6]
xor esi, esi
cmp bp, ax
je 0x40fbe3
nop
mov eax, dword [0x4e8f70]
movzx ecx, bp
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x11]
test al, al
jne 0x40fa7a
cmp word [edx + 0xa], 0
je 0x40facc
movzx eax, word [edx + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4ea734]
lea eax, [eax + ecx*4]
jmp 0x40fa83
movzx eax, al
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
cmp byte [eax + 0xd], 0
movzx ebp, word [edx + 0xc]
je 0x40fabe
cmp byte [edx + 0x16], 0
je 0x40faaf
cmp byte [esp + 0x144], 0
jne 0x40faca
mov ax, word [edx + 4]
mov edx, dword [esp + 0x3c]
mov word [edx + 4], ax
test esi, esi
jne 0x40fad8
jmp 0x40fabe
cmp byte [esp + 0x144], 0
jne 0x40fabe
test esi, esi
cmove esi, edx
mov eax, 0x7fff
cmp bp, ax
jne 0x40fa50
jmp 0x40facc
mov esi, edx
test esi, esi
je 0x40fbd7
mov edx, dword [esp + 0x3c]
movzx ecx, byte [esi + 0x11]
cmp ecx, 0x12
ja case.0x40fae8.1
movzx eax, byte [ecx + 0x41080c]
jmp dword [eax*4 + 0x4107f8]
cmp byte [edi + 0xca1], 0
mov eax, 0xc80
mov ecx, 0xc94
cmovne eax, ecx
add eax, edi
jmp 0x40fb4e
cmp byte [edi + 0xcc9], 0
mov eax, 0xca8
mov ecx, 0xcbc
cmovne eax, ecx
add eax, edi
jmp 0x40fb4e
cmp byte [edi + 0xcf1], 0
mov eax, 0xcd0
mov ecx, 0xce4
cmovne eax, ecx
add eax, edi
jmp 0x40fb4e
movzx eax, word [esi + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4ea734]
lea eax, [eax + ecx*4]
jmp 0x40fb4e
lea eax, [ecx + ecx*4]
lea eax, [edi + eax*4]
mov dword [0x4e8f50], eax
movzx eax, word [esi + 6]
test ax, ax
je 0x40fb64
mov esi, eax
mov dword [esp + 0x38], esi
jmp 0x40fbb7
movzx eax, word [esi + 4]
lea ecx, [esp + 0x38]
mov ebp, dword [esp + 0x148]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
push eax
lea eax, [esp + 0x15]
push eax
lea eax, [edx + 0xc]
mov dl, byte [esp + 0x14c]
push eax
push ebp
call fcn.00414490
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
jne 0x40fbb3
push 0x7fff
push dword [esp + 0x20]
push ebp
push dword [esp + 0x150]
jmp 0x40f2b3
mov esi, dword [esp + 0x38]
mov eax, dword [0x4e8f50]
mov edx, 0x7ffd
mov ecx, dword [esp + 0x144]
movzx ebp, si
cmp byte [eax + 0x12], 0xff
je 0x40fbe7
mov byte [eax + 0x12], 2
jmp 0x40fbe7
mov ecx, dword [esp + 0x144]
mov edx, 0x7ffd
mov esi, dword [esp + 0x34]
mov eax, 0x7ffe
cmp bp, ax
je 0x40fbfa
cmp bp, dx
jne 0x40fdfb
mov edi, dword [esp + 0x3c]
test cl, cl
jne 0x40fc06
mov byte [edi + 0x10], 1
test byte [0x4e8f40], 0xc
jne 0x40fc2d
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.00419c40
mov ecx, dword [esp + 0x154]
add esp, 0x10
cmp bl, 0xa2
je 0x40fc37
cmp bl, 0xa3
jne 0x40fc5a
mov esi, dword [esp + 0x24]
test cl, cl
jne 0x40fc5e
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 1
call fcn.00419c40
add esp, 0x10
jmp 0x40fc5e
mov esi, dword [esp + 0x24]
mov eax, dword [0x4e8f50]
mov byte [eax + 0xe], 1
mov eax, 0x7ffd
cmp bp, ax
jne 0x40fc9f
test byte [0x4e8f40], 0x30
jne 0x40fc91
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.00419c40
add esp, 0x10
mov eax, dword [0x4e8f50]
mov byte [eax + 0xf], 1
jmp 0x40fd1c
mov eax, 0x7ffe
cmp bp, ax
jne 0x40fd1c
cmp bl, 0xa0
je 0x40fcb3
cmp bl, 0xa1
jne 0x40fcd6
cmp byte [esp + 0x144], 0
jne 0x40fcd6
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 1
call fcn.00419c40
add esp, 0x10
test byte [0x4e8f40], 0x10
je 0x40fcf9
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa0
mov ecx, 1
call fcn.00419c40
add esp, 0x10
test byte [0x4e8f40], 0x20
je 0x40fd1c
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa1
mov ecx, 1
call fcn.00419c40
add esp, 0x10
test byte [0x4e8f40], 1
je 0x40fd3f
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa2
mov ecx, 1
call fcn.00419c40
add esp, 0x10
test byte [0x4e8f40], 2
je 0x40fd62
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa3
mov ecx, 1
call fcn.00419c40
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419c40
mov eax, 0x7ffd
add esp, 0x10
cmp bp, ax
jne 0x40fdc3
mov eax, dword [0x4e8f50]
cmp byte [eax + 0xf], 0
je 0x40fdc3
cmp bl, 0x60
jb 0x40fd9b
cmp bl, 0x69
jbe 0x40fda0
cmp bl, 0x6e
jne 0x40fdc3
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, 1
call fcn.00419c40
mov eax, dword [0x4e8f50]
add esp, 0x10
mov byte [eax + 0xf], 0
mov eax, dword [esp + 0x4c]
mov ecx, 0x68
mov word [eax], cx
mov eax, dword [esp + 0x144]
test al, al
jne 0x40fdde
mov byte [edi + 0x11], 1
mov edi, dword [esp + 0x148]
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push edi
jmp 0x4107d4
mov ebp, dword [esp + 0x3c]
mov eax, 0x7fff
cmp si, ax
jne 0x41019a
mov al, byte [ebp + 8]
mov dl, byte [0x4e8e3f]
test al, al
je 0x40fe1e
not al
and dl, al
mov eax, dword [esp + 0x14]
mov dh, byte [esp + 0x23]
cmp eax, dword [0x4e8e34]
jne 0x40fe4e
test dh, dh
je 0x40fe4e
mov eax, dword [0x4ea728]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x44]
movzx ebp, word [eax + ecx*2]
movzx eax, bl
mov dword [esp + 0x48], eax
jmp 0x40fe66
movzx eax, bl
movzx ecx, dl
shl ecx, 8
add ecx, eax
mov dword [esp + 0x48], eax
mov eax, dword [0x4ea724]
movzx ebp, word [eax + ecx*2]
movzx ecx, bp
movzx eax, bp
mov esi, eax
mov dword [esp + 0x34], ecx
mov edi, eax
mov dword [esp + 0x38], ecx
mov ecx, eax
cmp bp, word [esp + 0x58]
jne 0x40fefe
cmp byte [0x4ea722], 0
je 0x40fefe
cmp bl, 9
je 0x40fefe
mov eax, dword [esp + 0x14]
and dl, 0xf3
cmp eax, dword [0x4e8e34]
jne 0x40feb3
test dh, dh
je 0x40feb3
mov eax, dword [0x4ea728]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x44]
jmp 0x40fec2
mov eax, dword [0x4ea724]
movzx ecx, dl
shl ecx, 8
add ecx, dword [esp + 0x48]
movzx eax, word [eax + ecx*2]
mov ecx, 0x7ff9
movzx ebp, ax
movzx edx, ax
and eax, 0x7fff
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
cmp ax, cx
jbe 0x4100de
mov ecx, edx
mov esi, edx
mov edi, edx
mov edx, 0x7fff
cmp ax, dx
jb 0x40ff02
mov ebp, edx
jmp 0x4100e3
mov ebp, dword [esp + 0x34]
test cx, cx
movzx eax, di
mov ecx, dword [esp + 0x144]
movzx edx, si
jns 0x410004
test cl, cl
jne 0x4100c3
mov edi, dword [esp + 0x3c]
mov eax, 0x7fff
cmp word [edi + 4], ax
jne 0x40ff33
mov word [edi + 4], bp
mov ah, byte [0x4e8e3f]
mov al, ah
and al, 0xc0
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 8
mov edx, ecx
or edx, 1
test ah, 0xc
cmove edx, ecx
mov ecx, edx
or ecx, 4
test ah, 0x30
cmove ecx, edx
movzx edx, word [edi + 6]
mov esi, ecx
mov edi, 0x7fff
or esi, 2
test ah, 3
cmove esi, ecx
cmp dx, di
je 0x40ffd8
nop word [eax + eax]
mov eax, dword [0x4e8f70]
movzx ecx, dx
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x15], 0
movzx edx, word [ecx + 0xc]
jne 0x40ffa3
movzx eax, byte [ecx + 0xf]
not eax
test byte [0x4e8e3f], al
jne 0x40ffd3
cmp byte [ecx + 0x16], 0
jne 0x40ffd3
cmp byte [ecx + 0x11], 0
jne 0x40ffd3
cmp word [ecx + 0xa], 0
jne 0x40ffd3
cmp word [ecx + 6], 0
jne 0x40ffd3
mov eax, esi
not eax
test dword [ecx], eax
jne 0x40ffd3
movzx eax, byte [0x4e8e3f]
not eax
test byte [ecx + 0xe], al
je 0x40ffed
cmp dx, di
jne 0x40ff80
mov ecx, dword [esp + 0x144]
mov eax, edi
movzx esi, ax
mov dword [esp + 0x38], esi
jmp 0x4100c7
movzx eax, word [ecx + 4]
mov ecx, dword [esp + 0x144]
movzx esi, ax
mov dword [esp + 0x38], esi
jmp 0x4100c7
mov ebp, 0x7fff
cmp dx, bp
je 0x4100ea
and eax, ebp
test cl, cl
je 0x410094
cmp ax, word [0x4e8f80]
jae 0x410080
mov esi, eax
mov eax, dword [0x4ea72c]
cmp word [eax + esi*2], bp
je 0x410080
cmp byte [esp + 0x12], 0
mov edi, dword [esp + 0x148]
jne 0x410071
push dword [esp + 0x4c]
lea eax, [esp + 0x15]
mov dl, cl
push eax
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x40]
add eax, 0xc
push eax
push edi
call fcn.00414490
mov ecx, dword [esp + 0x154]
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
je 0x410071
mov esi, dword [esp + 0x38]
jmp 0x4100d3
mov eax, dword [0x4ea72c]
movzx esi, word [eax + esi*2]
mov dword [esp + 0x38], esi
jmp 0x4100d3
cmp byte [esp + 0x12], 0
mov edi, dword [esp + 0x148]
jne 0x4100f5
mov esi, dword [esp + 0x34]
jmp 0x4100d3
mov esi, dword [esp + 0x34]
cmp ax, word [0x4e8f80]
jae 0x4100cc
mov edi, dword [esp + 0x3c]
cmp word [edi + 4], bp
jne 0x4100cc
mov ecx, eax
mov eax, dword [0x4ea72c]
mov ax, word [eax + ecx*2]
mov ecx, dword [esp + 0x144]
mov word [edi + 4], ax
jmp 0x4100cc
mov esi, dword [esp + 0x34]
mov ebp, 0x7fff
mov edi, dword [esp + 0x148]
cmp si, bp
jne 0x4101a1
jmp 0x4100f1
mov ebp, 0x7fff
mov ecx, dword [esp + 0x144]
mov edi, dword [esp + 0x148]
test cl, cl
je 0x41013a
mov eax, dword [esp + 0x3c]
cmp byte [eax + 8], 0
jne 0x41012a
cmp byte [eax + 9], 0
je 0x41012a
cmp byte [esp + 0x11], 0
jne 0x41012a
cmp byte [esp + 0x22], 0
jne 0x41012a
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push edi
push ecx
jmp 0x4107d5
push 0x7fff
push dword [esp + 0x20]
push edi
push ecx
jmp 0x40f2b3
mov esi, dword [esp + 0x3c]
cmp word [esi + 4], bp
lea ecx, [esi + 4]
jne 0x410158
push 0x7fff
push dword [esp + 0x20]
push edi
push 0
jmp 0x40f2b3
mov ebp, dword [esp + 0x148]
lea eax, [esp + 0x11]
push 0
push eax
lea eax, [esi + 0xc]
mov dl, 1
push eax
push ebp
call fcn.00414490
mov cl, byte [esp + 0x21]
add esp, 0x10
test cl, cl
sete al
mov byte [esi + 0x11], al
test cl, cl
je 0x41026e
push 0x7fff
push dword [esp + 0x20]
push ebp
push 0
jmp 0x40f2b3
mov ecx, dword [esp + 0x144]
mov edi, dword [esp + 0x3c]
mov eax, esi
mov ebp, dword [esp + 0x148]
and eax, 0x7fff
cmp ax, word [0x4e8f80]
jae 0x41028a
cmp dword [esp + 0x40], 0
jne 0x41028a
push dword [esp + 0x4c]
lea eax, [esp + 0x15]
mov dl, cl
push eax
lea esi, [edi + 0xc]
push esi
push ebp
lea ecx, [esp + 0x48]
call fcn.00414490
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
jne 0x410286
mov eax, dword [esp + 0x4c]
cmp word [eax], 0x69
je 0x40fb9d
mov eax, dword [esp + 0x144]
test al, al
je 0x410233
cmp byte [edi + 0x11], 0
je 0x410223
push 0
push SysReAllocString
push 0x7fff
jmp 0x4107cf
push 0x7fff
push dword [esp + 0x20]
push ebp
push eax
jmp 0x40f2b3
lea ecx, [edi + 4]
mov eax, 0x7fff
cmp word [ecx], ax
je 0x410189
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
push esi
push ebp
mov dl, 1
call fcn.00414490
add esp, 0x10
cmp byte [esp + 0x11], 0
jne 0x410189
and byte [esi], 0xf7
mov byte [edi + 0x11], 1
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push ebp
push 0
jmp 0x4107d5
mov esi, dword [esp + 0x38]
and esi, 0x7fff
test byte [0x4e8f40], 0xcc
je 0x410353
cmp byte [esp + 0x11], 0
jne 0x410353
cmp byte [0x4ea721], 0
jne 0x4102c1
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e30]
jne 0x410353
test byte [0x4e8f40], 0xc0
je 0x4102ed
cmp si, word [0x4e8f80]
jae 0x4102ed
mov eax, dword [0x4e8f70]
movzx ecx, si
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc0
je 0x4102ed
mov byte [0x4ea720], 1
jmp 0x410353
cmp byte [0x4ea720], 0
jne 0x410353
mov al, byte [0x4e8f40]
test al, 0xc
je 0x410353
test al, 3
jne 0x410353
cmp si, word [0x4e8f80]
jae 0x410353
mov eax, dword [0x4e8f70]
movzx ecx, si
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc
je 0x410353
cmp dword [0x4e8e34], 0
je 0x41032f
mov byte [0x4ea720], 1
jmp 0x410353
movzx eax, word [0x4e4d14]
mov ecx, 2
mov dl, byte [0x4e4c2e]
push 0xffc3d44d
push 0
push 0
push eax
call fcn.00419c40
add esp, 0x10
movzx ecx, si
lea eax, [ecx - 0x7ffa]
cmp eax, 4
ja case.default.0x410365
jmp dword [eax*4 + 0x410820]
cmp byte [0x4ea722], 0
je 0x40fb9d
xor al, al
test byte [0x4e8f40], 4
je 0x41038b
mov edx, 0xa4
jmp 0x41039d
test byte [0x4e8f40], 8
movzx edx, al
mov eax, 0xa5
cmovne edx, eax
cmp byte [0x4ea722], 0
mov dword [esp + 0x48], edx
je 0x410424
mov eax, 0x7ffb
cmp si, ax
je case.0x410365.32765
test dl, dl
movzx eax, dl
push 0xffc3d44d
mov ecx, 0x12
cmovne ecx, eax
push 0
push 0
mov dl, cl
mov ecx, 1
push 0
call fcn.00419c40
add esp, 0x10
cmp byte [edi + 8], 0
je 0x410413
cmp bl, 0x5b
je 0x410413
cmp bl, 0x5c
je 0x410413
cmp byte [esp + 0x144], 0
jne 0x410413
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, 1
call fcn.00419c40
add esp, 0x10
mov byte [0x4ea722], 0
mov esi, 0x7fff
jmp 0x4106cc
cmp bl, 0xa4
je 0x410433
mov byte [esp + 0x2b], 0
cmp bl, 0xa5
jne 0x410438
mov byte [esp + 0x2b], 1
cmp bl, 0xa0
je 0x410446
cmp bl, 0xa1
je 0x410446
xor cl, cl
jmp 0x410448
mov cl, 1
mov byte [esp + 0x12], cl
cmp bl, 0xa2
je 0x41045b
mov byte [esp + 0x13], 0
cmp bl, 0xa3
jne 0x410460
mov byte [esp + 0x13], 1
xor dl, dl
test byte [0x4e8f40], 0x10
mov dword [esp + 0x40], edx
je 0x410476
mov edx, 0xa0
jmp 0x410499
test byte [0x4e8f40], 0x20
mov eax, dword [esp + 0x144]
je 0x41048a
mov dl, 0xa1
jmp 0x4104a0
test al, al
jne 0x4104a4
test cl, cl
movzx edx, dl
movzx eax, bl
cmovne edx, eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x40], edx
xor cl, cl
test byte [0x4e8f40], 1
mov dword [esp + 0x44], ecx
je 0x4104ba
mov byte [esp + 0x44], 0xa2
jmp 0x4104e0
test byte [0x4e8f40], 2
je 0x4104ca
mov byte [esp + 0x44], 0xa3
jmp 0x4104e0
test al, al
jne 0x4104e0
cmp byte [esp + 0x13], 0
movzx ecx, cl
movzx eax, bl
cmovne ecx, eax
mov dword [esp + 0x44], ecx
mov byte [esp + 0x13], 0
test dl, dl
je 0x410506
push 0xffc3d44d
push 0
push 0
push 0
mov ecx, 1
call fcn.00419c40
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x44]
test al, al
je 0x410528
push 0xffc3d44d
push 0
push 0
push 0
mov dl, al
mov ecx, 1
call fcn.00419c40
add esp, 0x10
cmp byte [esp + 0x2b], 0
je 0x41053d
cmp byte [esp + 0x144], 0
jne 0x410545
mov al, bl
jmp 0x410541
mov eax, dword [esp + 0x48]
test al, al
jne 0x41055c
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.00419c40
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419c40
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x41059d
cmp byte [esp + 0x12], 0
jne 0x41059d
mov dl, byte [esp + 0x40]
xor ecx, ecx
push 0xffc3d44d
push 0
push 0
push 0
call fcn.00419c40
add esp, 0x10
mov byte [0x4ea722], 1
mov esi, 0x7fff
jmp 0x4106cc
cmp byte [0x4ea722], 0
je 0x40fb9d
mov eax, dword [esp + 0x144]
test al, al
jne 0x4105fb
cmp bl, 0xa2
je 0x4105da
cmp bl, 0xa3
je 0x4105da
cmp bl, 0xa0
je 0x4105da
cmp bl, 0xa1
jne 0x4105fb
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, 1
call fcn.00419c40
mov eax, dword [esp + 0x154]
add esp, 0x10
test byte [0x4e8f40], 0xc
je 0x410612
test al, al
je 0x410629
cmp bl, 0xa4
je 0x410612
cmp bl, 0xa5
jne 0x410629
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.00419c40
add esp, 0x10
mov eax, 0x7ffd
cmp si, ax
jne 0x410688
test byte [0x4e8f40], 0x30
jne 0x410688
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.00419c40
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419c40
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, 1
call fcn.00419c40
add esp, 0x30
mov esi, 0x7fff
jmp 0x4106cc
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419c40
add esp, 0x10
mov esi, 0x7fff
jmp 0x4106cc
mov esi, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x54], esi
mov eax, dword [ecx + 8]
test eax, eax
je 0x4106cc
cmp byte [eax], 5
jne 0x4106cc
movzx eax, word [ecx + 0x18]
shl eax, 0x10
or esi, eax
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0x4c]
mov ecx, 0x68
mov word [eax], cx
mov eax, dword [esp + 0x144]
test al, al
je 0x410761
cmp byte [esp + 0x22], 0
je 0x410740
cmp byte [edi + 9], 0
je 0x410740
mov esi, dword [esp + 0x24]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push esi
mov ecx, 1
call fcn.00419c40
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 2
call fcn.00419c40
mov eax, dword [esp + 0x74]
add esp, 0x20
push 0
push SysReAllocString
push eax
push dword [esp + 0x28]
push ebp
push dword [esp + 0x158]
jmp 0x4107d5
cmp byte [edi + 8], 0
je 0x41074e
cmp byte [edi + 0x11], 0
je 0x410755
jmp 0x4107c7
cmp byte [esp + 0x11], 0
je 0x4107c7
push esi
push dword [esp + 0x20]
push ebp
push eax
jmp 0x40f2b3
mov ecx, dword [0x4e8f50]
mov byte [edi + 0x10], 1
test ecx, ecx
je 0x41077f
cmp byte [ecx + 8], 0
je 0x41077f
cmp byte [ecx + 0x12], 0xff
je 0x41077f
mov byte [ecx + 0x12], 2
cmp byte [esp + 0x11], 0
je 0x410796
or byte [edi + 0xc], 8
push esi
push dword [esp + 0x20]
push ebp
push eax
jmp 0x40f2b3
cmp bl, 0xa4
je 0x4107a0
cmp bl, 0xa5
jne 0x4107c3
push 0xffc3d450
push 0
push 0
push dword [esp + 0x30]
mov dl, bl
mov ecx, 1
call fcn.00419c40
mov eax, dword [esp + 0x154]
add esp, 0x10
mov byte [edi + 0x11], 1
push 0
push SysReAllocString
push esi
push dword [esp + 0x28]
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ebx
mov edx, dword [esp + 0x158]
call fcn.00410840
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret