Function at 0x40ed20
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 eax, 0x7fff
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x148]
mov dword [esp + 0x14], ecx
movzx ebp, di
mov dword [esp + 0x54], eax
cmp edx, 0xffc3d44f
je 0x40ed6a
cmp edx, 0xffc3d44e
je 0x40ed6a
mov byte [esp + 0x22], 0
cmp edx, 0xffc3d44d
jne 0x40ed6f
mov byte [esp + 0x22], 1
mov ecx, dword [0x4e8c68]
mov ebx, dword [esp + 0x13c]
test ecx, ecx
jne 0x40ed8d
lea esi, [esp + 0x5c]
mov dword [esp + 0x1c], esi
jmp 0x40ee54
mov eax, dword [0x4e8c84]
imul esi, eax, 0xd4
inc eax
mov dword [0x4e8c84], eax
add esi, ecx
mov dword [esp + 0x1c], esi
cmp eax, dword [0x4e478c]
jl 0x40edb6
mov dword [0x4e8c84], 0
mov ecx, dword [esp + 0x144]
mov byte [esi], bl
mov byte [esi + 6], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [0x4e8c80], eax
sub ecx, dword [0x4ea778]
mov dword [0x4ea778], eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4dcbb0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4dcabc]
movss dword [esi + 8], xmm0
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esp + 0x1c]
mov esi, eax
add ecx, 0xc
test esi, esi
je 0x40ee36
cmp esi, dword [0x4e8c7c]
je 0x40ee2f
push esi
push ecx
push 0x418
push dword [0x4e8c5c]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x40ee43
xor eax, eax
mov word [ecx], ax
jmp 0x40ee43
mov dword [ecx], 0x2f004e
mov dword [ecx + 4], 0x41
mov edx, dword [esp + 0x148]
mov dword [0x4e8c7c], esi
mov esi, dword [esp + 0x1c]
cmp bl, 0xe7
jne 0x40eea9
mov ecx, dword [esp + 0x138]
push 0x7fff
push esi
push edx
push dword [esp + 0x150]
mov ax, word [ecx + 4]
mov edx, dword [esp + 0x44]
push 0
push 0xe7
push ecx
push dword [esp + 0x150]
mov ecx, dword [esp + 0x34]
mov word [esi + 2], ax
mov eax, 0x55
mov word [esi + 4], ax
call fcn.004108f0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov al, bl
mov word [esi + 2], di
mov esi, dword [0x4ea7a8]
add al, 0x64
mov cl, 3
mov edi, 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 [0x4e8e80]
jne 0x40ef09
mov cl, byte [esp + 0x14c]
and cl, 1
mov dword [esp + 0x40], ecx
jne 0x40ef90
mov al, byte [esp + 0x144]
movzx ecx, bl
xor al, 1
shl al, 7
mov byte [ecx + 0x4e8e90], al
mov ecx, dword [esp + 0x40]
jmp 0x40ef90
mov edx, dword [esp + 0x14c]
mov ecx, edx
movzx ebp, bl
shr ecx, 4
and ecx, 0xffffff01
mov dword [esp + 0x40], ecx
lea eax, [ebp*4]
add eax, ebp
cmp byte [esi + eax*4 + 8], 0
jne 0x40ef8c
test dl, 0x10
jne 0x40ef8c
cmp bl, 0xa0
je 0x40ef41
cmp bl, 0xa1
jne 0x40ef60
cmp byte [esp + 0x144], 0
jne 0x40ef60
cmp bl, 0xa0
mov eax, edi
mov edx, 0x10
cmove eax, edx
test byte [0x4e8e8e], al
jne 0x40ef8c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [0x4ea7a8]
mov ecx, dword [esp + 0x40]
mov dword [0x4ea780], eax
mov dword [0x4ea77c], eax
mov al, byte [esp + 0x144]
xor al, 1
shl al, 7
mov byte [ebp + 0x4e8e90], al
mov ebp, dword [esp + 0x14]
mov dl, byte [esp + 0x22]
test dl, dl
je 0x40ef9f
mov eax, 0x69
jmp 0x40efac
mov eax, 0x61
test cl, cl
cmovne edi, eax
movzx eax, di
cmp byte [0x4e8e7f], 0
mov ecx, dword [esp + 0x1c]
lea edi, [ecx + 4]
mov word [edi], ax
mov dword [esp + 0x50], edi
je 0x40eff7
cmp bl, 0x5b
je 0x40efcd
cmp bl, 0x5c
jne 0x40eff7
mov eax, dword [esp + 0x144]
test al, al
jne 0x40effe
push 0
push SysReAllocString
push 0x7fff
push ecx
mov ecx, dword [esp + 0x158]
push ecx
push 0
push ecx
mov ecx, ebp
jmp 0x410748
mov eax, dword [esp + 0x144]
cmp byte [0x4ea60e], 0
mov ebp, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edi, dword [sym.imp.USER32.dll_FindWindowW]
je 0x40f0b2
cmp bl, 0x1b
jne 0x40f0b2
test al, al
jne 0x40f0b2
push 0
push str.32771
call edi
test eax, eax
je 0x40f0a8
push 0
push eax
call ebp
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x40f0a8
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
xor ecx, ecx
call fcn.00419b00
mov dl, byte [0x4e8f95]
mov ecx, 1
push 0xffc3d44d
shr dl, 3
push 0
and dl, 1
push 0
push 0
or dl, 0xa4
call fcn.00419b00
mov ecx, dword [esp + 0x3c]
add esp, 0x20
push 0
push SysReAllocString
push 0x7fff
push ecx
mov ecx, dword [esp + 0x158]
push ecx
push 0
push ecx
mov ecx, dword [esp + 0x30]
push 0x1b
jmp 0x410749
mov esi, dword [0x4ea7a8]
mov dl, byte [esp + 0x22]
mov eax, dword [esp + 0x24]
movzx eax, ax
mov dword [esp + 0x40], eax
lea ecx, [eax + eax*4]
mov eax, dword [0x4ea7ac]
mov dh, byte [eax + ecx*4 + 0x13]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov byte [esp + 0x23], dh
cmp ecx, dword [0x4e8e84]
jne 0x40f0e4
test dh, dh
jne 0x40f0f1
movzx eax, bl
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [esp + 0x30], eax
test dl, dl
je 0x40f168
mov edx, dword [esp + 0x148]
cmp edx, 0xffc3d44e
jne 0x40f128
cmp byte [esp + 0x144], 0
je 0x40f128
cmp dword [0x4e8fbc], eax
jne 0x40f128
mov byte [eax + 0xd], 0
mov byte [eax + 0x10], 0
mov dword [0x4e8fbc], 0
mov ecx, dword [esp + 0x1c]
push 0x7fff
push ecx
push edx
push dword [esp + 0x150]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x34]
mov edx, dword [esp + 0x48]
push ebx
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.004108f0
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 0x40f183
mov byte [eax + 0x11], dl
mov word [eax + 4], cx
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e80]
jne 0x40f215
test bl, bl
jne 0x40f1d7
mov ecx, dword [esp + 0x1c]
push 0x7fff
push ecx
mov ecx, dword [esp + 0x150]
push ecx
push edx
push dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov ecx, eax
push 0
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.004108f0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
cmp bl, 1
je 0x40f1e1
cmp bl, 2
jne 0x40f215
cmp dword [0x4e8c34], 0
jne 0x40f24a
push 0
push str.32768
call edi
test eax, eax
je 0x40f204
push 0
push eax
call ebp
cmp eax, dword [0x4e9ea8]
je 0x40f243
mov esi, dword [0x4ea7a8]
mov edx, dword [esp + 0x144]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x4e8fbc]
mov edi, dword [esp + 0x30]
test ecx, ecx
je 0x40f282
cmp ecx, edi
je 0x40f282
test dl, dl
jne 0x40f282
cmp byte [ecx + 0x12], 0xff
je 0x40f282
cmp eax, dword [0x4e8e84]
jne 0x40f271
xor eax, eax
cmp byte [edi + 8], al
sete al
jmp 0x40f27a
mov edx, dword [esp + 0x144]
mov ecx, dword [esp + 0x30]
mov al, dl
xor al, 1
push 0x7fff
mov byte [ecx + 0x10], 0
mov byte [ecx + 0xd], al
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x150]
push ecx
push edx
jmp 0x40f13a
mov eax, dword [0x4e8fbc]
movzx eax, byte [eax + 8]
test eax, eax
je 0x40f282
mov byte [ecx + 0x12], 1
cmp byte [edi + 9], 0
jne 0x40f2ad
cmp byte [edi + 0xa], 0
jne 0x40f2ad
mov ecx, dword [esp + 0x1c]
mov al, dl
push 0x7fff
push ecx
mov ecx, dword [esp + 0x150]
xor al, 1
push ecx
mov byte [edi + 0xd], al
push edx
jmp 0x40f13a
xor ecx, ecx
mov ebp, 0x7fff
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x44], ecx
mov byte [esp + 0x11], cl
test dl, dl
je 0x40f306
mov ch, byte [edi + 0x10]
mov al, byte [edi + 0xd]
mov byte [esp + 0x13], al
movzx eax, word [edi + 4]
mov byte [esp + 0x2b], ch
mov ecx, ebp
mov byte [edi + 0x10], 0
cmp ax, cx
je 0x40f2f3
mov ebp, eax
mov word [edi + 4], cx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x38], ebp
mov al, byte [edi + 0xc]
test al, 8
je 0x40f316
and al, 0xf7
mov byte [esp + 0x11], 1
mov byte [edi + 0xc], al
jmp 0x40f316
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 [edi + 0xd], al
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e84]
jne 0x40f394
cmp byte [edi + 8], cl
je 0x40f3ba
cmp byte [esi + 0xcb5], cl
jne 0x40f348
cmp byte [esi + 0xcc9], cl
jne 0x40f348
xor al, al
jmp 0x40f34a
mov al, 1
cmp byte [esi + 0xcdd], 0
mov byte [esi + 0x161], al
jne 0x40f366
cmp byte [esi + 0xcf1], 0
jne 0x40f366
xor al, al
jmp 0x40f368
mov al, 1
cmp byte [esi + 0xc8d], 0
mov byte [esi + 0x175], al
jne 0x40f38a
cmp byte [esi + 0xca1], 0
jne 0x40f38a
xor al, al
mov byte [esi + 0x14d], al
jmp 0x40f3ba
mov al, 1
mov byte [esi + 0x14d], al
jmp 0x40f3ba
cmp dword [0x4e8e84], 0
jne 0x40f3ba
mov cl, 1
call fcn.0041c220
mov esi, dword [0x4ea7a8]
mov ah, al
mov byte [0x4e8f94], ah
mov cl, 1
mov byte [0x4e8f95], ah
mov eax, dword [edi]
test eax, eax
je 0x40f3ca
cmp dword [eax], 6
mov byte [esp + 0x22], 1
je 0x40f3cf
mov byte [esp + 0x22], 0
test cl, cl
jne 0x40f3e0
mov cl, 1
call fcn.0041c220
mov esi, dword [0x4ea7a8]
mov al, byte [edi + 9]
mov ecx, dword [esp + 0x144]
test al, al
je 0x40f7a8
test cl, cl
jne 0x40f7a8
mov ecx, dword [0x4e8fbc]
test ecx, ecx
je 0x40f412
cmp byte [edi + 0xa], 0
je 0x40f412
cmp edi, ecx
jne 0x40f7a1
mov dh, byte [edi + 0xc]
shr dh, 4
not dh
and dh, 1
mov byte [esp + 0x1b], dh
cmp al, 1
jne 0x40f587
cmp byte [esp + 0x23], 0
mov ecx, dword [esp + 0x40]
jne 0x40f437
movzx ecx, bl
xor edx, edx
movzx eax, cx
cmp byte [esp + 0x23], dl
mov dword [esp + 0x48], ecx
cmovne edx, eax
movzx ecx, cl
xor eax, eax
cmp byte [esp + 0x23], al
push 0
cmovne ecx, eax
call fcn.0041c440
mov dh, al
xor dl, dl
xor eax, eax
mov byte [esp + 0x16], dh
xor ecx, ecx
mov byte [esp + 0x43], dl
add esp, 4
mov dword [esp + 0x4c], eax
cmp cx, word [0x4e8fec]
jae 0x40f5e7
nop
cmp byte [esp + 0x23], 0
mov ecx, dword [0x4e8fdc]
mov edi, dword [ecx + eax*4]
je 0x40f496
movzx eax, word [edi + 0xa]
jmp 0x40f49a
movzx eax, byte [edi + 0x11]
cmp dword [esp + 0x48], eax
je 0x40f4a9
test byte [edi + 0xe], dh
je 0x40f562
cmp word [edi + 6], 0
je 0x40f4e5
cmp byte [edi + 0x19], 0
je 0x40f562
cmp byte [0x4e8e0d], 0
jne 0x40f562
test byte [edi + 0x13], 1
mov dh, byte [esp + 0x1b]
jne 0x40f57d
test dh, dh
jne 0x40f57d
mov dl, 1
mov byte [esp + 0x3f], dl
jmp 0x40f55e
mov esi, dword [edi + 0x20]
mov eax, esi
test eax, eax
je 0x40f562
nop
cmp byte [eax + 0x20], 0
jne 0x40f4ff
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x40f4f0
jmp 0x40f562
test dl, dl
je 0x40f510
test byte [edi + 0x13], 1
je 0x40f562
nop dword [eax]
cmp byte [esi + 0x20], 0
je 0x40f557
cmp byte [0x4e8e0d], 0
je 0x40f525
cmp byte [esi + 0x21], 0
je 0x40f557
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40f538
mov edx, dword [edi + 0x1c]
call fcn.00413a90
test eax, eax
je 0x40f553
test byte [esi + 0x1d], 1
mov dh, byte [esp + 0x1b]
jne 0x40f57d
test dh, dh
jne 0x40f57d
mov dl, 1
mov byte [esp + 0x3f], dl
test byte [edi + 0x13], dl
je 0x40f55e
jmp 0x40f557
mov dl, byte [esp + 0x3f]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x40f510
mov dh, byte [esp + 0x12]
mov ecx, dword [esp + 0x4c]
movzx eax, word [0x4e8fec]
inc ecx
mov dword [esp + 0x4c], ecx
cmp ecx, eax
jge 0x40f5dd
mov eax, ecx
jmp 0x40f480
mov esi, dword [0x4ea7a8]
mov edi, dword [esp + 0x30]
mov byte [esp + 0x12], 0
cmp edi, dword [0x4e8fbc]
je 0x40f59e
mov dword [0x4e8fbc], edi
mov byte [edi + 0x12], 0
cmp byte [edi + 0xa], 0
je 0x40f730
mov al, byte [edi + 8]
mov dl, byte [0x4e8f94]
test al, al
je 0x40f5b9
not al
and dl, al
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e84]
jne 0x40f5f8
cmp byte [esp + 0x23], 0
je 0x40f5f8
mov eax, dword [0x4ea7a0]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x40]
jmp 0x40f608
mov esi, dword [0x4ea7a8]
mov edi, dword [esp + 0x30]
mov dh, dl
mov byte [esp + 0x1b], dh
test dl, dl
jne 0x40f587
mov byte [esp + 0x12], 1
jmp 0x40f59e
movzx ecx, dl
movzx eax, bl
shl ecx, 8
add ecx, eax
mov eax, dword [0x4ea79c]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
movzx ebp, cx
and eax, 0x7fff
mov dword [esp + 0x2c], ebp
add eax, 0xffff8006
mov dword [esp + 0x38], ebp
cmp ax, 4
jbe 0x40f73a
mov eax, 0x7fff
cmp cx, ax
je 0x40f73a
test dh, dh
jne 0x40f648
mov byte [edi + 0x12], 0xff
jmp 0x40f709
test dl, dl
jne 0x40f709
push 0
lea eax, [esp + 0x15]
push eax
push dword [esp + 0x150]
lea ecx, [esp + 0x44]
call fcn.004143a0
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
je 0x40f67f
cmp byte [esp + 0x11], 0
je 0x40f67f
mov ebp, dword [esp + 0x38]
jmp 0x40f6fb
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x2c], ebp
cmp bp, word [0x4e8fec]
jae 0x40f6f2
mov ecx, dword [0x4ea7a4]
mov eax, 0x7fff
movzx esi, bp
add esi, esi
add ecx, esi
cmp word [ecx], ax
je 0x40f6f2
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
push dword [esp + 0x150]
call fcn.004143a0
add esp, 0xc
test eax, eax
je 0x40f6f2
cmp byte [esp + 0x11], 0
je 0x40f6f2
cmp dword [esp + 0x44], 0
mov dh, byte [esp + 0x1b]
je 0x40f6df
mov byte [esp + 0x11], 0
jmp 0x40f703
mov dword [esp + 0x44], eax
mov eax, dword [0x4ea7a4]
movzx ebp, word [esi + eax]
mov dword [esp + 0x38], ebp
jmp 0x40f6ff
mov ebp, 0x7fff
mov dword [esp + 0x38], ebp
mov dh, byte [esp + 0x1b]
mov dword [esp + 0x2c], ebp
mov esi, dword [0x4ea7a8]
test ebp, 0x8000
je 0x40f717
mov word [edi + 4], bp
jmp 0x40f73a
cmp bp, word [0x4e8fec]
jae 0x40f730
mov eax, dword [0x4ea7a4]
movzx ecx, bp
mov ax, word [eax + ecx*2]
mov word [edi + 4], ax
mov eax, 0x7fff
cmp bp, ax
jne 0x40f7a1
cmp byte [esp + 0x12], 0
je 0x40f74d
mov eax, dword [esp + 0x50]
mov ecx, 0x23
mov word [eax], cx
test dh, dh
jne 0x40f755
or byte [edi + 0xc], 8
cmp byte [edi + 8], 0
jne 0x40f789
test dh, dh
je 0x40f789
cmp byte [esp + 0x22], 0
jne 0x40f789
mov ecx, dword [esp + 0x1c]
push 0
push SysReAllocString
push 0x7fff
push ecx
push dword [esp + 0x158]
mov byte [edi + 0x11], 1
push 0
jmp 0x410743
mov ecx, dword [esp + 0x1c]
push 0x7fff
push ecx
push dword [esp + 0x150]
push 0
jmp 0x40f13a
mov ecx, dword [esp + 0x144]
cmp byte [edi + 0xa], 0
mov byte [esp + 0x12], 0
je 0x40f81a
test cl, cl
je 0x40f81a
mov al, byte [esp + 0x2b]
cmp dword [0x4e8fbc], edi
jne 0x40f7d1
test al, al
je 0x40f81a
mov dword [0x4e8fbc], 0
cmp byte [edi + 0xb], 0
jne 0x40f815
test al, al
je 0x40f7ff
cmp byte [esp + 0x11], 0
jne 0x40f7ff
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push dword [esp + 0x158]
push ecx
jmp 0x410743
push 0x7fff
push dword [esp + 0x20]
push dword [esp + 0x150]
push ecx
jmp 0x40f13a
mov byte [esp + 0x12], 1
cmp byte [edi + 9], 0
mov eax, 1
je 0x40f957
test cl, cl
je 0x40f957
cmp dword [0x4e8fbc], edi
jne 0x40f843
mov dword [0x4e8fbc], 0
cmp byte [edi + 0xe], 0
je 0x40f86f
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
mov byte [edi + 0xe], 0
mov ecx, eax
call fcn.00419b00
mov esi, dword [0x4ea7a8]
add esp, 0x10
mov eax, 1
cmp byte [edi + 0xf], 0
je 0x40f896
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov byte [edi + 0xf], 0
mov ecx, eax
call fcn.00419b00
mov esi, dword [0x4ea7a8]
add esp, 0x10
mov cl, byte [esp + 0x22]
mov al, byte [edi + 0x12]
test cl, cl
je 0x40f914
cmp al, 2
jne 0x40f8fb
mov ebp, dword [esp + 0x24]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push ebp
mov ecx, 1
call fcn.00419b00
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 2
call fcn.00419b00
add esp, 0x20
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push dword [esp + 0x158]
push dword [esp + 0x158]
jmp 0x410743
cmp al, 1
jne 0x40f931
push 0x7fff
push dword [esp + 0x20]
push dword [esp + 0x150]
jmp 0x40f133
test al, al
jle 0x40f931
mov eax, 0x7fff
cmp bp, ax
jne 0x40f931
cmp byte [edi + 8], 0
jne 0x40f8ff
cmp byte [esp + 0x11], 0
jne 0x40f8ff
jmp 0x40f8d8
cmp byte [edi + 0xa], 0
jne 0x40f94a
cmp byte [edi + 8], 0
jne 0x40f8ff
cmp byte [esp + 0x11], 0
jne 0x40f8ff
test cl, cl
jne 0x40f8ff
jmp 0x40f8d8
cmp byte [esp + 0x13], 0
jne 0x40f957
cmp byte [edi + 0xb], 0
je 0x40f8ff
xor ebp, ebp
mov dword [esp + 0x4c], ebp
cmp dword [0x4e8fbc], ebp
je 0x40fd04
mov ecx, dword [esp + 0x144]
test cl, cl
je 0x40f97e
cmp byte [edi + 0xb], 0
je 0x40fd04
mov edx, dword [esp + 0x2c]
mov eax, 0x7fff
cmp dx, ax
jne 0x40ffab
movzx edi, word [edi + 6]
cmp di, ax
je 0x40fad6
nop dword [eax]
mov eax, dword [0x4e8fdc]
movzx ecx, di
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x11]
test al, al
jne 0x40f9ca
cmp word [edx + 0xa], 0
je 0x40fa28
movzx eax, word [edx + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4ea7ac]
lea eax, [eax + ecx*4]
jmp 0x40f9d3
movzx eax, al
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
cmp byte [eax + 0xd], 0
movzx edi, word [edx + 0xc]
mov ecx, dword [esp + 0x144]
je 0x40fa14
cmp byte [edx + 0x16], 0
je 0x40fa07
test cl, cl
jne 0x40fa20
mov ecx, dword [esp + 0x30]
mov ax, word [edx + 4]
mov word [ecx + 4], ax
test ebp, ebp
jne 0x40fa37
mov ecx, dword [esp + 0x144]
jmp 0x40fa14
test cl, cl
jne 0x40fa14
test ebp, ebp
cmove ebp, edx
mov dword [esp + 0x4c], ebp
mov eax, 0x7fff
cmp di, ax
jne 0x40f9a0
jmp 0x40fa2f
mov ebp, edx
mov dword [esp + 0x4c], ebp
jmp 0x40fa2f
mov ecx, dword [esp + 0x144]
test ebp, ebp
je 0x40fad2
movzx ecx, byte [ebp + 0x11]
cmp ecx, 0x12
ja case.0x40fa47.1
movzx eax, byte [ecx + 0x410778]
jmp dword [eax*4 + 0x410764]
cmp byte [esi + 0xca1], 0
mov eax, 0xc80
mov ecx, 0xc94
cmovne eax, ecx
add eax, esi
jmp 0x40faad
cmp byte [esi + 0xcc9], 0
mov eax, 0xca8
mov ecx, 0xcbc
cmovne eax, ecx
add eax, esi
jmp 0x40faad
cmp byte [esi + 0xcf1], 0
mov eax, 0xcd0
mov ecx, 0xce4
cmovne eax, ecx
add eax, esi
jmp 0x40faad
movzx eax, word [ebp + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4ea7ac]
lea eax, [eax + ecx*4]
jmp 0x40faad
lea eax, [ecx + ecx*4]
lea eax, [esi + eax*4]
mov dword [0x4e8fbc], eax
movzx eax, word [ebp + 6]
test ax, ax
jne 0x40fabf
movzx eax, word [ebp + 4]
mov ecx, dword [esp + 0x144]
movzx edx, ax
mov dword [esp + 0x38], edx
movzx edi, ax
jmp 0x40fad6
mov edx, dword [esp + 0x2c]
mov eax, 0x7ffe
cmp di, ax
je 0x40faee
mov eax, 0x7ffd
cmp di, ax
jne 0x40fcfe
mov eax, dword [0x4e8fbc]
cmp byte [eax + 0x12], 0xff
je 0x40fafd
mov byte [eax + 0x12], 2
mov esi, dword [esp + 0x30]
test cl, cl
jne 0x40fb09
mov byte [esi + 0x10], 1
test byte [0x4e8f95], 0xc
jne 0x40fb30
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.00419b00
mov ecx, dword [esp + 0x154]
add esp, 0x10
cmp bl, 0xa2
je 0x40fb3a
cmp bl, 0xa3
jne 0x40fb5d
mov ebp, dword [esp + 0x24]
test cl, cl
jne 0x40fb61
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 1
call fcn.00419b00
add esp, 0x10
jmp 0x40fb61
mov ebp, dword [esp + 0x24]
mov eax, dword [0x4e8fbc]
mov byte [eax + 0xe], 1
mov eax, 0x7ffd
cmp di, ax
jne 0x40fba2
test byte [0x4e8f95], 0x30
jne 0x40fb94
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.00419b00
add esp, 0x10
mov eax, dword [0x4e8fbc]
mov byte [eax + 0xf], 1
jmp 0x40fc22
mov eax, 0x7ffe
cmp di, ax
jne 0x40fc22
cmp bl, 0xa0
je 0x40fbb6
cmp bl, 0xa1
jne 0x40fbdd
cmp byte [esp + 0x144], 0
jne 0x40fbdd
push 0xffc3d44d
push 0
push 0
push ebp
mov ebp, 1
mov dl, bl
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
jmp 0x40fbe2
mov ebp, 1
test byte [0x4e8f95], 0x10
je 0x40fc02
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa0
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
test byte [0x4e8f95], 0x20
je 0x40fc22
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa1
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
test byte [0x4e8f95], 1
mov ebp, 1
je 0x40fc47
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa2
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
test byte [0x4e8f95], 2
je 0x40fc67
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa3
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419b00
mov eax, 0x7ffd
add esp, 0x10
cmp di, ax
jne 0x40fcc5
mov eax, dword [0x4e8fbc]
cmp byte [eax + 0xf], 0
je 0x40fcc5
cmp bl, 0x60
jb 0x40fca0
cmp bl, 0x69
jbe 0x40fca5
cmp bl, 0x6e
jne 0x40fcc5
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, ebp
call fcn.00419b00
mov eax, dword [0x4e8fbc]
add esp, 0x10
mov byte [eax + 0xf], 0
mov eax, dword [esp + 0x50]
mov ecx, 0x68
mov word [eax], cx
mov eax, dword [esp + 0x144]
test al, al
jne 0x40fce0
mov byte [esi + 0x11], 1
mov ecx, dword [esp + 0x1c]
push 0
push SysReAllocString
push 0x7fff
push ecx
mov ecx, dword [esp + 0x158]
push ecx
jmp 0x410742
mov edi, dword [esp + 0x30]
jmp 0x40fd08
mov edx, dword [esp + 0x2c]
mov eax, 0x7fff
cmp dx, ax
jne 0x40ffab
mov al, byte [edi + 8]
mov dl, byte [0x4e8f94]
test al, al
je 0x40fd27
not al
and dl, al
mov eax, dword [esp + 0x14]
mov dh, byte [esp + 0x23]
cmp eax, dword [0x4e8e84]
jne 0x40fd57
test dh, dh
je 0x40fd57
mov eax, dword [0x4ea7a0]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x40]
movzx ebp, word [eax + ecx*2]
movzx eax, bl
mov dword [esp + 0x48], eax
jmp 0x40fd6f
movzx eax, bl
movzx ecx, dl
shl ecx, 8
add ecx, eax
mov dword [esp + 0x48], eax
mov eax, dword [0x4ea79c]
movzx ebp, word [eax + ecx*2]
movzx ecx, bp
movzx eax, bp
mov esi, eax
mov dword [esp + 0x2c], ecx
mov edi, eax
mov dword [esp + 0x38], ecx
mov ecx, eax
cmp bp, word [esp + 0x58]
jne 0x40fe12
cmp byte [0x4ea60e], 0
je 0x40fe12
cmp bl, 9
je 0x40fe12
mov edi, dword [esp + 0x14]
and dl, 0xf3
cmp edi, dword [0x4e8e84]
jne 0x40fdc0
test dh, dh
je 0x40fdc0
mov eax, dword [0x4ea7a0]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x40]
jmp 0x40fdcf
mov eax, dword [0x4ea79c]
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 + 0x2c], ebp
mov dword [esp + 0x38], ebp
cmp ax, cx
jbe 0x410049
mov ecx, edx
mov esi, edx
mov edi, edx
mov edx, 0x7fff
cmp ax, dx
jb 0x40fe16
mov ecx, dword [esp + 0x144]
mov eax, edx
jmp 0x410059
mov ebp, dword [esp + 0x2c]
test cx, cx
movzx eax, di
mov ecx, dword [esp + 0x144]
movzx edx, si
jns 0x40ff14
test cl, cl
jne 0x40ff95
mov edi, dword [esp + 0x30]
mov eax, 0x7fff
cmp word [edi + 4], ax
jne 0x40fe47
mov word [edi + 4], bp
mov ah, byte [0x4e8f94]
mov ebp, 0x7fff
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
or esi, 2
test ah, 3
cmove esi, ecx
cmp dx, bp
je 0x40fee8
nop word [eax + eax]
mov eax, dword [0x4e8fdc]
movzx ecx, dx
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x15], 0
movzx edx, word [ecx + 0xc]
jne 0x40feb3
movzx eax, byte [ecx + 0xf]
not eax
test byte [0x4e8f94], al
jne 0x40fee3
cmp byte [ecx + 0x16], 0
jne 0x40fee3
cmp byte [ecx + 0x11], 0
jne 0x40fee3
cmp word [ecx + 0xa], 0
jne 0x40fee3
cmp word [ecx + 6], 0
jne 0x40fee3
mov eax, esi
not eax
test dword [ecx], eax
jne 0x40fee3
movzx eax, byte [0x4e8f94]
not eax
test byte [ecx + 0xe], al
je 0x40fefd
cmp dx, bp
jne 0x40fe90
mov ecx, dword [esp + 0x144]
mov eax, ebp
movzx edx, ax
mov dword [esp + 0x38], edx
jmp 0x40ff99
movzx eax, word [ecx + 4]
mov ecx, dword [esp + 0x144]
movzx edx, ax
mov dword [esp + 0x38], edx
jmp 0x40ff99
mov ebp, 0x7fff
cmp dx, bp
je 0x410057
and eax, ebp
test cl, cl
je 0x41000f
cmp ax, word [0x4e8fec]
jae 0x40ff8a
mov esi, eax
mov eax, dword [0x4ea7a4]
cmp word [eax + esi*2], bp
je 0x40ff8a
cmp byte [esp + 0x12], 0
jne 0x40ff7b
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x38]
push eax
lea eax, [esp + 0x15]
push eax
push dword [esp + 0x150]
call fcn.004143a0
mov ecx, dword [esp + 0x150]
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
je 0x40ff7b
mov edx, dword [esp + 0x38]
jmp 0x40ff99
mov eax, dword [0x4ea7a4]
movzx edx, word [eax + esi*2]
mov dword [esp + 0x38], edx
jmp 0x40ff99
cmp byte [esp + 0x12], 0
jne 0x410061
mov edx, dword [esp + 0x2c]
mov eax, 0x7fff
cmp dx, ax
je 0x410059
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov eax, edx
mov edi, dword [esp + 0x148]
and eax, 0x7fff
cmp ax, word [0x4e8fec]
jae 0x4101b7
test esi, esi
jne 0x4101b7
push dword [esp + 0x50]
lea eax, [esp + 0x15]
push eax
push edi
lea ecx, [esp + 0x44]
call fcn.004143a0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4101b3
mov eax, dword [esp + 0x50]
cmp word [eax], 0x69
jne 0x410114
push 0x7fff
push dword [esp + 0x20]
push edi
jmp 0x40f133
mov edx, dword [esp + 0x2c]
cmp ax, word [0x4e8fec]
jae 0x40ff99
mov edi, dword [esp + 0x30]
cmp word [edi + 4], bp
jne 0x40ff99
mov ecx, eax
mov eax, dword [0x4ea7a4]
mov ax, word [eax + ecx*2]
mov ecx, dword [esp + 0x144]
mov word [edi + 4], ax
jmp 0x40ff99
mov ecx, dword [esp + 0x144]
mov eax, 0x7fff
jmp 0x41005d
mov eax, ebp
mov edi, dword [esp + 0x14]
test cl, cl
je 0x41008e
mov eax, dword [esp + 0x30]
cmp byte [eax + 8], 0
jne 0x40f7ff
cmp byte [eax + 9], 0
je 0x40f7ff
cmp byte [esp + 0x11], 0
jne 0x40f7ff
cmp byte [esp + 0x22], 0
jmp 0x40f7e0
mov esi, dword [esp + 0x30]
cmp word [esi + 4], ax
lea ecx, [esi + 4]
jne 0x4100b4
push 0x7fff
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x150]
push 0
jmp 0x40f13e
mov ebp, dword [esp + 0x148]
lea eax, [esp + 0x11]
push 0
push eax
push ebp
call fcn.004143a0
movzx ecx, byte [esp + 0x1d]
add esp, 0xc
test eax, eax
mov eax, 1
cmove ecx, eax
test cl, cl
sete al
mov byte [esi + 0x11], al
test cl, cl
je 0x4100f9
push 0x7fff
push dword [esp + 0x20]
mov ecx, edi
push ebp
push 0
jmp 0x40f13e
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push ebp
push 0
push ecx
mov ecx, edi
jmp 0x410748
mov ecx, dword [esp + 0x144]
test cl, cl
je 0x410150
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x11], 0
je 0x410140
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
push edi
push ecx
jmp 0x410743
push 0x7fff
push dword [esp + 0x20]
push edi
push ecx
jmp 0x40f13a
mov esi, dword [esp + 0x30]
mov eax, 0x7fff
cmp word [esi + 4], ax
lea ecx, [esi + 4]
je 0x4101a2
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
push edi
call fcn.004143a0
add esp, 0xc
test eax, eax
je 0x41019e
cmp byte [esp + 0x11], 0
jne 0x41019e
push 0
push SysReAllocString
push 0x7fff
push dword [esp + 0x28]
mov byte [esi + 0x11], 1
push edi
push 0
jmp 0x410743
or byte [esi + 0xc], 8
push 0x7fff
push dword [esp + 0x20]
push edi
push 0
jmp 0x40f13a
mov edx, dword [esp + 0x38]
mov ecx, dword [0x4e8fbc]
and edx, 0x7fff
mov dword [esp + 0x2c], edx
test ecx, ecx
je 0x4101ee
test ebp, ebp
jne 0x4101df
cmp byte [ecx + 8], 0
je 0x4101ee
cmp byte [esp + 0x144], 0
jne 0x4101ee
mov eax, dword [0x4e8fbc]
cmp byte [eax + 0x12], 0xff
je 0x4101ee
mov byte [eax + 0x12], 2
test byte [0x4e8f95], 0xcc
je 0x4102b5
cmp byte [esp + 0x11], 0
jne 0x4102b5
cmp byte [0x4ea60d], 0
jne 0x41021f
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e8e80]
jne 0x4102b5
test byte [0x4e8f95], 0xc0
je 0x41024b
cmp dx, word [0x4e8fec]
jae 0x41024b
mov eax, dword [0x4e8fdc]
movzx ecx, dx
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc0
je 0x41024b
mov byte [0x4ea60c], 1
jmp 0x4102b5
cmp byte [0x4ea60c], 0
jne 0x4102b5
mov al, byte [0x4e8f95]
test al, 0xc
je 0x4102b5
test al, 3
jne 0x4102b5
cmp dx, word [0x4e8fec]
jae 0x4102b5
mov eax, dword [0x4e8fdc]
movzx ecx, dx
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc
je 0x4102b5
cmp dword [0x4e8e84], 0
je 0x41028d
mov byte [0x4ea60c], 1
jmp 0x4102b5
movzx eax, word [0x4e4d04]
mov ecx, 2
mov dl, byte [0x4e484e]
push 0xffc3d44d
push 0
push 0
push eax
call fcn.00419b00
mov edx, dword [esp + 0x3c]
add esp, 0x10
movzx ecx, dx
lea eax, [ecx - 0x7ffa]
cmp eax, 4
ja case.default.0x4102c7
jmp dword [eax*4 + 0x41078c]
cmp byte [0x4ea60e], 0
je 0x410000
xor al, al
test byte [0x4e8f95], 4
je 0x4102ed
mov ecx, 0xa4
jmp 0x4102ff
test byte [0x4e8f95], 8
movzx ecx, al
mov eax, 0xa5
cmovne ecx, eax
cmp byte [0x4ea60e], 0
mov dword [esp + 0x48], ecx
je 0x410387
mov eax, 0x7ffb
cmp dx, ax
je case.0x4102c7.32765
push 0xffc3d44d
test cl, cl
movzx eax, cl
push 0
mov edx, 0x12
mov ebp, 1
push 0
cmovne edx, eax
mov ecx, ebp
push 0
call fcn.00419b00
mov esi, dword [esp + 0x40]
add esp, 0x10
cmp byte [esi + 8], 0
je 0x410376
cmp bl, 0x5b
je 0x410376
cmp bl, 0x5c
je 0x410376
cmp byte [esp + 0x144], 0
jne 0x410376
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
mov byte [0x4ea60e], 0
mov ebp, 0x7fff
jmp 0x410638
cmp bl, 0xa4
je 0x410396
mov byte [esp + 0x2b], 0
cmp bl, 0xa5
jne 0x41039b
mov byte [esp + 0x2b], 1
cmp bl, 0xa0
je 0x4103a9
cmp bl, 0xa1
je 0x4103a9
xor cl, cl
jmp 0x4103ab
mov cl, 1
mov byte [esp + 0x12], cl
cmp bl, 0xa2
je 0x4103be
mov byte [esp + 0x13], 0
cmp bl, 0xa3
jne 0x4103c3
mov byte [esp + 0x13], 1
xor dl, dl
test byte [0x4e8f95], 0x10
mov dword [esp + 0x44], edx
je 0x4103d9
mov edx, 0xa0
jmp 0x4103fc
test byte [0x4e8f95], 0x20
mov eax, dword [esp + 0x144]
je 0x4103ed
mov dl, 0xa1
jmp 0x410403
test al, al
jne 0x410407
test cl, cl
movzx edx, dl
movzx eax, bl
cmovne edx, eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x44], edx
xor cl, cl
test byte [0x4e8f95], 1
mov dword [esp + 0x40], ecx
je 0x41041d
mov byte [esp + 0x40], 0xa2
jmp 0x410443
test byte [0x4e8f95], 2
je 0x41042d
mov byte [esp + 0x40], 0xa3
jmp 0x410443
test al, al
jne 0x410443
cmp byte [esp + 0x13], 0
movzx ecx, cl
movzx eax, bl
cmovne ecx, eax
mov dword [esp + 0x40], ecx
mov byte [esp + 0x13], 0
mov ebp, 1
test dl, dl
je 0x41046b
push 0xffc3d44d
push 0
push 0
push 0
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x40]
test al, al
je 0x41048a
push 0xffc3d44d
push 0
push 0
push 0
mov dl, al
mov ecx, ebp
call fcn.00419b00
add esp, 0x10
cmp byte [esp + 0x2b], 0
je 0x41049f
cmp byte [esp + 0x144], 0
jne 0x4104a7
mov al, bl
jmp 0x4104a3
mov eax, dword [esp + 0x48]
test al, al
jne 0x4104be
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.00419b00
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419b00
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x4104ff
cmp byte [esp + 0x12], 0
jne 0x4104ff
mov dl, byte [esp + 0x44]
xor ecx, ecx
push 0xffc3d44d
push 0
push 0
push 0
call fcn.00419b00
add esp, 0x10
mov byte [0x4ea60e], 1
mov ebp, 0x7fff
jmp 0x410634
cmp byte [0x4ea60e], 0
je 0x410000
mov eax, dword [esp + 0x144]
test al, al
jne 0x410561
cmp bl, 0xa2
je 0x41053c
cmp bl, 0xa3
je 0x41053c
cmp bl, 0xa0
je 0x41053c
cmp bl, 0xa1
jne 0x410561
push 0xffc3d44d
push 0
push 0
mov ebp, 1
mov dl, bl
push 0
mov ecx, ebp
call fcn.00419b00
mov eax, dword [esp + 0x154]
add esp, 0x10
jmp 0x410566
mov ebp, 1
test byte [0x4e8f95], 0xc
je 0x41057d
test al, al
je 0x410594
cmp bl, 0xa4
je 0x41057d
cmp bl, 0xa5
jne 0x410594
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.00419b00
add esp, 0x10
mov ecx, dword [esp + 0x2c]
mov eax, 0x7ffd
cmp cx, ax
jne 0x4105f4
test byte [0x4e8f95], 0x30
jne 0x4105f4
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.00419b00
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419b00
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, ebp
call fcn.00419b00
add esp, 0x30
mov ebp, 0x7fff
jmp 0x410634
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.00419b00
add esp, 0x10
mov ebp, 0x7fff
jmp 0x410634
mov eax, dword [esi + 8]
mov ebp, ecx
mov dword [esp + 0x54], ebp
test eax, eax
je 0x410634
cmp byte [eax], 5
jne 0x410634
movzx eax, word [esi + 0x18]
shl eax, 0x10
or ebp, eax
mov dword [esp + 0x54], ebp
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x50]
mov ecx, 0x68
mov word [eax], cx
mov eax, dword [esp + 0x144]
test al, al
je 0x4106dd
cmp byte [esp + 0x22], 0
je 0x4106b0
cmp byte [esi + 9], 0
je 0x4106b0
mov ebp, dword [esp + 0x24]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push ebp
mov ecx, 1
call fcn.00419b00
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 2
call fcn.00419b00
mov eax, dword [esp + 0x74]
add esp, 0x20
push 0
push SysReAllocString
push eax
push dword [esp + 0x28]
push edi
push dword [esp + 0x158]
jmp 0x410743
cmp byte [esi + 8], 0
je 0x4106c9
cmp byte [esi + 0x11], 0
mov ecx, dword [esp + 0x1c]
jne 0x410738
push ebp
push ecx
push edi
push eax
jmp 0x40f13a
cmp byte [esp + 0x11], 0
je 0x410734
mov ecx, dword [esp + 0x1c]
push ebp
push ecx
push edi
push eax
jmp 0x40f13a
cmp byte [esp + 0x11], 0
mov byte [esi + 0x10], 1
je 0x4106f9
mov ecx, dword [esp + 0x1c]
or byte [esi + 0xc], 8
push ebp
push ecx
push edi
push eax
jmp 0x40f13a
cmp bl, 0xa4
je 0x41070d
cmp bl, 0xa5
je 0x41070d
cmp bl, 0x5b
je 0x41070d
cmp bl, 0x5c
jne 0x410730
push 0xffc3d450
push 0
push 0
push dword [esp + 0x30]
mov dl, bl
mov ecx, 1
call fcn.00419b00
mov eax, dword [esp + 0x154]
add esp, 0x10
mov byte [esi + 0x11], 1
mov ecx, dword [esp + 0x1c]
push 0
push SysReAllocString
push ebp
push ecx
push edi
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ebx
mov edx, dword [esp + 0x158]
call fcn.004107a0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret