Function at 0x401d50
Capabilities:
Contain obfuscated stackstrings
Encode data using base64

Disassembly:
push ebp
lea ebp, [esp - 0x1c04]
mov eax, 0x1c04
call fcn.00491ff0
push 0xffffffffffffffff
push 0x49c120
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x4d4028]
xor eax, ebp
mov dword [ebp + 0x1c00], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
mov esi, ecx
mov eax, dword [esi + 0x1658]
push 0
push 0x1009
push eax
mov dword [ebp - 0xa4], esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x10]
call dword [0x4a2ef4]
push 0x1c
lea ecx, [ebp - 0x3c]
push ecx
mov dword [ebp - 4], 0
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualQuery]
push 0x4d6674
call ebx
neg eax
sbb eax, eax
and eax, dword [ebp - 0x38]
push 0xc5d
push eax
lea ecx, [ebp - 0x10]
call dword [0x4a2ec8]
push 0
push 0
push 0
push 0
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x10]
push edx
lea edi, [esi + 0x1638]
push 0
push 1
mov ecx, edi
mov dword [ebp - 0xac], edi
call fcn.0049009c
lea ecx, [ebp - 0x10]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x10]
call dword [0x4a2ef4]
push 0x1c
lea eax, [ebp - 0x3c]
push eax
push 0x4d6674
mov dword [ebp - 4], 2
call ebx
neg eax
sbb eax, eax
and eax, dword [ebp - 0x38]
push 0x992
push eax
lea ecx, [ebp - 0x10]
call dword [0x4a2ec8]
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x10]
push ecx
push 1
push 0
mov ecx, edi
call fcn.004900ba
lea ecx, [ebp - 0x10]
call dword [0x4a2ee8]
xor ebx, ebx
call fcn.00461e18
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 4], 4
mov eax, dword [esi + 0x2c0]
mov edx, eax
shr edx, 0x18
mov ecx, eax
shr ecx, 0x10
mov byte [ebp - 0x10], dl
mov byte [ebp - 0xf], cl
push ebx
mov edx, eax
mov byte [ebp - 0xd], al
push ebx
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x10]
shr edx, 8
push ecx
mov byte [ebp - 0xe], dl
call fcn.00462dd4
mov eax, dword [ebp - 0x60]
cmp eax, ebx
jne 0x401fbd
mov edx, dword [esi + 0x2c4]
mov eax, dword [esi + 0x2c0]
push edx
push eax
push str.Couldnt_get_device_object_for_device_id__0x_08X__drive_letter___s_._n
lea eax, [ebx + 0x40]
mov ecx, 0x7f6050
call fcn.004012c0
mov ecx, dword [esi + 0x1658]
add esp, 0xc
push ebx
push ebx
push 0x1009
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x10]
call dword [0x4a2ef4]
push 0x1c
lea edx, [ebp - 0xf4]
push edx
mov byte [ebp - 4], 5
mov esi, dword [sym.imp.KERNEL32.dll_VirtualQuery]
push 0x4d6674
call esi
neg eax
sbb eax, eax
and eax, dword [ebp - 0xf0]
push 0xc5d
push eax
lea ecx, [ebp - 0x10]
call dword [0x4a2ec8]
push ebx
push ebx
push ebx
push ebx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x10]
push eax
push ebx
push 1
mov ecx, edi
call fcn.0049009c
lea ecx, [ebp - 0x10]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x10]
call dword [0x4a2ef4]
push 0x1c
lea ecx, [ebp - 0xf4]
push ecx
push 0x4d6674
mov byte [ebp - 4], 7
call esi
neg eax
sbb eax, eax
and eax, dword [ebp - 0xf0]
push 0x993
push eax
lea ecx, [ebp - 0x10]
call dword [0x4a2ec8]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x10]
push edx
push 1
push ebx
mov ecx, edi
call fcn.004900ba
lea ecx, [ebp - 0x10]
call dword [0x4a2ee8]
call fcn.00461e18
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.00403bb0
lea eax, [ebx + 1]
jmp 0x402da4
call fcn.0045f59e
cmp eax, 0x18
mov dword [ebp - 0x50], eax
jle 0x401fcd
mov dword [ebp - 0x50], ebx
lea eax, [ebp + 0x1bdc]
push eax
mov eax, dword [ebp - 0x60]
call fcn.0045e931
test al, al
jne 0x402090
mov ecx, dword [esi + 0x2c4]
mov edx, dword [esi + 0x2c0]
push ecx
push edx
push str.Couldnt_get_disc_information_for_device_id__0x_08X__drive_letter___s_._n
mov eax, 0x40
mov ecx, 0x7f6050
call fcn.004012c0
mov eax, dword [esi + 0x1658]
add esp, 0xc
push ebx
push ebx
push 0x1009
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push 0xc5d
lea ecx, [ebp - 0x18]
push ecx
call fcn.00403ae0
push ebx
push ebx
push ebx
push ebx
mov byte [ebp - 4], 9
mov eax, dword [eax]
push eax
push ebx
push 1
mov ecx, edi
call fcn.0049009c
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call dword [0x4a2ee8]
push ebx
push 0x990
lea edx, [ebp - 0x18]
push edx
call fcn.00403ae0
mov byte [ebp - 4], 0xa
mov eax, dword [eax]
push eax
push 1
push ebx
mov ecx, edi
call fcn.004900ba
lea ecx, [ebp - 0x18]
call dword [0x4a2ee8]
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.00403bb0
mov eax, 1
jmp 0x402da4
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x50]
push ebx
add eax, 0xcb2
push eax
lea ecx, [ebp - 0x54]
push ecx
call fcn.00403ae0
mov esi, eax
push ebx
push 0xcb1
lea edx, [ebp - 0x18]
push edx
mov byte [ebp - 4], 0xc
call fcn.00403ae0
push esi
push eax
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0xd
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0xe
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x54]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x14]
call dword [0x4a2ef4]
mov byte [ebp - 4], 0xf
movzx eax, byte [ebp + 0x1bf1]
movzx ecx, byte [ebp + 0x1bf0]
movzx ebx, byte [ebp + 0x1bf2]
movzx esi, byte [ebp + 0x1bf3]
mov edi, dword [0x4a2ee0]
add ecx, eax
add ecx, ebx
add ecx, esi
add ecx, 0xffffffff
cmp ecx, 0x3fa
ja 0x4021ad
cdq
mov ecx, 0x3c
idiv ecx
push esi
push ebx
push edx
push eax
lea edx, [ebp - 0x14]
push str._02d:_02d:_02d__02d
push edx
call edi
add esp, 0x18
push 0
push 0xc36
lea eax, [ebp - 0x18]
push eax
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x10
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x11
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
cmp byte [ebp + 0x1be5], 0
lea ecx, [ebp - 0x14]
je 0x4021cd
lea eax, [ebp + 0x1bf4]
push eax
push 0x4a3d90
push ecx
call edi
add esp, 0xc
jmp 0x4021d8
push 0x7543
call dword [0x4a2eb8]
push 0
push 0xc5b
lea edx, [ebp - 0x18]
push edx
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x12
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x13
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
cmp byte [ebp + 0x1be6], 0
lea ecx, [ebp - 0x14]
je 0x402246
lea eax, [ebp + 0x1be8]
push eax
push 0x4a3d90
push ecx
call edi
add esp, 0xc
jmp 0x402251
push 0x7543
call dword [0x4a2eb8]
push 0
push 0xc5c
lea edx, [ebp - 0x18]
push edx
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x14
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x15
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
mov ebx, dword [ebp - 0x60]
lea eax, [ebp - 0xd8]
push eax
push 0xff
mov eax, ebx
call fcn.0045e853
cmp byte [ebp + 0x1bdc], 0
je 0x4022f2
movzx ecx, byte [ebp + 0x1bdd]
push 0
add ecx, 0xc5e
push ecx
lea edx, [ebp - 0x18]
push edx
call fcn.00403ae0
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x16
call dword [0x4a2ea0]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
push 0
push 0xc5d
lea eax, [ebp - 0x18]
push eax
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x17
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x18
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
lea eax, [ebp]
push eax
mov eax, ebx
call fcn.0045ea0c
test al, al
je 0x402bf0
cmp byte [ebp], 0
je 0x402bf0
movzx ecx, byte [ebp + 9]
push ecx
lea edx, [ebp - 0x14]
push 0x4a3fe0
push edx
call edi
add esp, 0xc
push 0
push 0xc33
lea eax, [ebp - 0x18]
push eax
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x19
call fcn.00403920
push eax
mov byte [ebp - 4], 0x1a
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
movzx eax, byte [ebp + 0xa]
push eax
lea ecx, [ebp - 0x14]
push 0x4a3fe0
push ecx
call edi
add esp, 0xc
push 0
push 0xc35
lea edx, [ebp - 0x18]
push edx
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x1b
call fcn.00403920
push eax
mov byte [ebp - 4], 0x1c
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
cmp byte [ebp + 0xa], 0
jbe 0x402cb5
lea ecx, [ebp - 0x1c]
call dword [0x4a2ef4]
mov byte [ebp - 4], 0x1d
xor esi, esi
cmp byte [ebp + 0x1be3], 0
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], esi
jb 0x402be8
jmp 0x40244b
mov esi, dword [ebp - 0x10]
mov ebx, esi
shl ebx, 4
sub ebx, esi
add ebx, ebx
cmp byte [ebp + ebx + 0x22], 0
je 0x4028ac
cmp byte [ebp - 0x1d], 0
je 0x4027db
lea eax, [ebp + 0x145c]
push eax
mov eax, dword [ebp - 0x60]
push esi
call fcn.0045eae7
test al, al
mov byte [ebp - 0x1d], al
je 0x4027db
call dword [0x4d4030]
cmp byte [ebp + 0x145c], 0
mov dword [ebp - 0x90], eax
je 0x4024a1
lea eax, [ebp + 0x145d]
jmp 0x4024e2
lea ecx, [ebp + 0x145d]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
add esi, 1
cmp esi, 0x3fffffff
jle 0x4024bf
xor eax, eax
jmp 0x4024df
lea eax, [esi + esi]
call fcn.00491fa0
mov edx, dword [ebp - 0x90]
mov ecx, esi
lea eax, [ebp + 0x145d]
mov esi, esp
mov dword [ebp - 0x6c], esp
call fcn.004038f0
mov esi, dword [ebp - 0x10]
push eax
lea ecx, [ebp - 0x64]
call dword [0x4a2ed8]
mov byte [ebp - 4], 0x1e
cmp byte [ebp + 0x145c], 0
je 0x402501
lea eax, [ebp + 0x14fd]
jmp 0x402542
lea edx, [ebp + 0x14fd]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
add esi, 1
cmp esi, 0x3fffffff
jle 0x40251f
xor eax, eax
jmp 0x40253f
lea eax, [esi + esi]
call fcn.00491fa0
mov edx, dword [ebp - 0x90]
mov ecx, esi
lea eax, [ebp + 0x14fd]
mov esi, esp
mov dword [ebp - 0x6c], esp
call fcn.004038f0
mov esi, dword [ebp - 0x10]
push eax
lea ecx, [ebp - 0x78]
call dword [0x4a2ed8]
test esi, esi
mov byte [ebp - 4], 0x1f
jne 0x4026d8
push 0x4a4090
lea ecx, [ebp - 0x7c]
call dword [0x4a2ed8]
push 0x4a3d98
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x20
call dword [0x4a2ed8]
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x21
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x22
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x84]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x1f
call dword [0x4a2ee8]
push 0
push 0x9c8
lea eax, [ebp - 0xb0]
push eax
call fcn.00403ae0
lea ecx, [ebp - 0x78]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x23
call fcn.00403920
push eax
mov byte [ebp - 4], 0x24
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x1f
call dword [0x4a2ee8]
push 0
push 0x9c7
lea eax, [ebp - 0x94]
push eax
call fcn.00403ae0
lea ecx, [ebp - 0x64]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x25
call fcn.00403920
push eax
mov byte [ebp - 4], 0x26
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x1f
call dword [0x4a2ee8]
push 0x4a4090
lea ecx, [ebp - 0x88]
call dword [0x4a2ed8]
push 0x4a3d98
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x27
call dword [0x4a2ed8]
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x80]
push ecx
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x28
call fcn.00403920
push eax
mov byte [ebp - 4], 0x29
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x80]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x88]
jmp 0x4027c0
mov ecx, dword [ebp + ebx - 8]
sub ecx, dword [ebp + ebx - 0xf]
mov eax, 0x1b4e81b5
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
lea ecx, [ebp - 0x74]
add esi, edx
call dword [0x4a2ef4]
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
shl ecx, 4
sub ecx, eax
add ecx, ecx
add ecx, ecx
sub esi, ecx
push esi
push eax
lea edx, [ebp - 0x74]
push 0x4a3d9c
push edx
mov byte [ebp - 4], 0x2a
call edi
add esp, 0x10
push 0
push 0x9c5
lea eax, [ebp - 0xa0]
push eax
call fcn.00403ae0
mov byte [ebp - 4], 0x2b
mov ecx, dword [eax]
mov edx, dword [ebp - 0x10]
push ecx
push edx
lea eax, [ebp - 0x1c]
push str._d.__s
push eax
call edi
add esp, 0x10
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x2a
call dword [0x4a2ee8]
lea ecx, [ebp - 0x74]
push ecx
lea edx, [ebp - 0xb8]
push edx
lea ecx, [ebp - 0x64]
call fcn.00402df0
add esp, 8
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x38]
push ecx
mov byte [ebp - 4], 0x2c
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x2d
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0xb8]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x74]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x78]
call dword [0x4a2ee8]
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x64]
jmp 0x402bca
mov ecx, dword [ebp + ebx + 0x16]
sub ecx, dword [ebp + ebx + 0xf]
mov eax, 0x1b4e81b5
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
lea ecx, [ebp - 0x50]
add esi, edx
call dword [0x4a2ef4]
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
shl edx, 4
sub edx, eax
add edx, edx
add edx, edx
sub esi, edx
push esi
push eax
lea eax, [ebp - 0x50]
push str._d:_02d
push eax
mov byte [ebp - 4], 0x2e
call edi
add esp, 0x10
push 0
push 0x9c5
lea ecx, [ebp - 0x98]
push ecx
call fcn.00403ae0
mov byte [ebp - 4], 0x2f
mov edx, dword [eax]
mov eax, dword [ebp - 0x10]
push edx
add eax, 1
push eax
lea ecx, [ebp - 0x1c]
push str._d.__s
push ecx
call edi
add esp, 0x10
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x2e
call dword [0x4a2ee8]
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x38]
push ecx
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x30
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x50]
jmp 0x402bca
movzx edx, byte [ebp + 0xa]
cmp esi, edx
je 0x402be8
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [ebp - 0x60]
add esi, 1
push esi
call fcn.0045e853
test al, al
je 0x402bd0
cmp byte [ebp - 0xd8], 0
je 0x402bd0
push 0
push 0xc47
lea ecx, [ebp - 0x9c]
push ecx
call fcn.00403ae0
mov byte [ebp - 4], 0x31
mov edx, dword [eax]
push edx
push esi
lea eax, [ebp - 0x1c]
push str._d.__s
push eax
call edi
add esp, 0x10
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
push 0x4a4090
lea ecx, [ebp - 0x54]
call dword [0x4a2ed8]
push 0x4a3d98
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0x32
call dword [0x4a2ed8]
lea ecx, [ebp - 0x54]
push ecx
lea edx, [ebp - 0x8c]
push edx
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x33
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x34
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x8c]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
push 0x4a4090
lea ecx, [ebp - 0x18]
call dword [0x4a2ed8]
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x35
call fcn.00403920
push eax
mov byte [ebp - 4], 0x36
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
push 0
push 0xc45
lea ecx, [ebp - 0xb4]
push ecx
call fcn.00403ae0
mov byte [ebp - 4], 0x37
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x1c]
push str._____s
push eax
call edi
add esp, 0xc
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
mov al, byte [ebp - 0xd2]
test al, al
jne 0x402a21
push 0x753a
jmp 0x402a3c
cmp al, 1
jne 0x402a2c
push 0x753b
jmp 0x402a3c
cmp al, 2
jne 0x402a37
push 0x753c
jmp 0x402a3c
push 0xc77
lea ecx, [ebp - 0x14]
call dword [0x4a2eb8]
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x38]
push eax
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x38
call fcn.00402e80
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
push 0
push 0xc39
lea ecx, [ebp - 0xbc]
push ecx
call fcn.00403ae0
mov byte [ebp - 4], 0x39
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x1c]
push str._____s
push eax
call edi
add esp, 0xc
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
mov ecx, dword [ebp - 0xcc]
push ecx
lea edx, [ebp - 0x14]
push 0x4a3fe0
push edx
call edi
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x38]
push edx
call fcn.00403920
push eax
mov byte [ebp - 4], 0x3a
call fcn.00402e80
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
push 0
push 0x7530
lea eax, [ebp - 0xa8]
push eax
call fcn.00403ae0
mov byte [ebp - 4], 0x3b
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x1c]
push str._____s
push edx
call edi
add esp, 0xc
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
cmp byte [ebp - 0xcf], 0
jne 0x402b87
lea ecx, [ebp - 0x68]
call dword [0x4a2ef4]
mov byte [ebp - 4], 0x3c
mov eax, dword [ebp + ebx + 0x16]
sub eax, dword [ebp + ebx + 0xf]
push 0
imul eax, dword [ebp + ebx + 0x26]
push 0
push eax
lea esi, [ebp - 0x70]
call fcn.0045ab8d
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x3d
call dword [0x4a2ea0]
mov ecx, esi
call dword [0x4a2ee8]
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
jmp 0x402b9c
mov eax, dword [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x14]
push str._d_LB
push ecx
call edi
add esp, 0xc
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x38]
push ecx
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x3e
call fcn.00402e80
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1d
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
mov eax, dword [ebp - 0x10]
movzx edx, byte [ebp + 0x1be3]
add eax, 1
cmp eax, edx
mov dword [ebp - 0x10], eax
jle 0x402448
lea ecx, [ebp - 0x1c]
jmp 0x402cab
movzx eax, byte [ebp + 0x1be1]
push eax
lea ecx, [ebp - 0x14]
push 0x4a3fe0
push ecx
call edi
add esp, 0xc
push 0
push 0xc33
lea edx, [ebp - 0x68]
push edx
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x3f
call fcn.00403920
push eax
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x40
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
movzx eax, byte [ebp + 0x1be3]
push eax
lea ecx, [ebp - 0x14]
push 0x4a3fe0
push ecx
call edi
add esp, 0xc
push 0
push 0xc35
lea edx, [ebp - 0x70]
push edx
call fcn.00403ae0
lea ecx, [ebp - 0x14]
push ecx
push eax
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0x41
call fcn.00403920
push eax
mov byte [ebp - 4], 0x42
call fcn.00402e80
lea ecx, [ebp - 0x34]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x38]
call dword [0x4a2ee8]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xf
call dword [0x4a2ee8]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x1658]
push 0
push 0
push 0x1009
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
xor edi, edi
cmp esi, eax
jbe 0x402ce6
call dword [0x4a3094]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x48], eax
mov ebx, eax
jbe 0x402cf6
call dword [0x4a3094]
mov eax, dword [ebp - 0x44]
cmp esi, ebx
je 0x402d50
cmp esi, eax
jb 0x402d04
call dword [0x4a3094]
mov edx, dword [esi]
mov ebx, dword [ebp - 0xac]
push 0
push 0
push 0
push 0
push edx
push edi
push 1
mov ecx, ebx
call fcn.0049009c
cmp esi, dword [ebp - 0x44]
jb 0x402d2a
call dword [0x4a3094]
mov eax, dword [esi + 4]
push eax
push 1
push edi
mov ecx, ebx
call fcn.004900ba
mov eax, dword [ebp - 0x44]
add edi, 1
cmp esi, eax
jb 0x402d4b
call dword [0x4a3094]
mov eax, dword [ebp - 0x44]
add esi, 0x18
jmp 0x402ce6
lea ecx, [ebp - 0x14]
call dword [0x4a2ee8]
lea ebx, [ebp - 0x4c]
call fcn.00403000
or edi, 0xffffffff
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x5c]
test eax, eax
mov esi, dword [ebp - 0x60]
je 0x402d77
mov dword [esi + 0x4fc], eax
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x402d86
push eax
mov eax, esi
call fcn.0045c626
add dword [esi + 0x500], edi
jne 0x402da2
push esi
call fcn.00463050
test al, al
jne 0x402da2
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
xor eax, eax
lea esp, [ebp - 0x104]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1c00]
xor ecx, ebp
call fcn.00490f79
add ebp, 0x1c04
mov esp, ebp
pop ebp
ret