Function at 0x408c00
Capabilities:
Accept command line arguments
Encrypt or decrypt data via bcrypt
Hash data via bcrypt

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c01b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x198
mov eax, dword [0x43c770]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x174], ecx
mov dword [ebp - 4], 0
xor esi, esi
mov dword [ebp - 0x104], 0
mov edi, 1
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xec], 0xf
mov byte [ebp - 0x100], 0
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], 0xf
mov byte [ebp - 0xe8], 0
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], 0
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
xor eax, eax
mov dword [ebp - 0x64], esi
xorps xmm0, xmm0
xor ecx, ecx
movq qword [ebp - 0x6c], xmm0
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
movq qword [ebp - 0x84], xmm0
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
movq qword [ebp - 0x78], xmm0
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], ecx
movq qword [ebp - 0x40], xmm0
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
movq qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
push ecx
push ecx
push 0x43778c
lea eax, [ebp - 0x104]
mov byte [ebp - 4], 0x12
push eax
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jns 0x408dc9
xor edi, edi
jmp 0x408f94
push 0
lea eax, [ebp - 0x88]
push eax
push 4
lea eax, [ebp - 0x5c]
push eax
push str.ObjectLength
push dword [ebp - 0x104]
call dword [sym.imp.bcrypt.dll_BCryptGetProperty]
test eax, eax
jns 0x408df4
xor edi, edi
jmp 0x408f94
mov esi, dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0
mov dword [ebp - 0x154], eax
lea eax, [ebp - 0x88]
push eax
push 4
lea eax, [ebp - 0x60]
push eax
push str.HashDigestLength
push dword [ebp - 0x104]
call dword [sym.imp.bcrypt.dll_BCryptGetProperty]
test eax, eax
jns 0x408e3a
xor edi, edi
xor esi, esi
jmp 0x408f94
mov esi, dword [ebp - 0x60]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0
push 0
push 0
push dword [ebp - 0x5c]
mov esi, eax
lea eax, [ebp - 0x10c]
push dword [ebp - 0x154]
push eax
push dword [ebp - 0x104]
call dword [sym.imp.bcrypt.dll_BCryptCreateHash]
test eax, eax
jns 0x408e7c
xor edi, edi
jmp 0x408f94
cmp dword [ebx + 0x28], 0x10
lea eax, [ebx + 0x14]
push 0
push dword [ebx + 0x24]
cmovae eax, dword [ebx + 0x14]
push eax
push dword [ebp - 0x10c]
call dword [sym.imp.bcrypt.dll_BCryptHashData]
test eax, eax
jns 0x408ea4
xor edi, edi
jmp 0x408f94
push 0
push dword [ebp - 0x60]
push esi
push dword [ebp - 0x10c]
call dword [sym.imp.bcrypt.dll_BCryptFinishHash]
test eax, eax
jns 0x408ec1
xor edi, edi
jmp 0x408f94
movups xmm0, xmmword [esi]
push 0
push 0
push 0x4377dc
lea eax, [ebp - 0x110]
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jns 0x408ee9
xor edi, edi
jmp 0x408f94
push 0
push 0x10
lea eax, [ebp - 0x24]
push eax
push 0
push 0
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x110]
call dword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
test eax, eax
jns 0x408f13
xor edi, edi
jmp 0x408f94
push 1
lea eax, [ebp - 0x28]
push eax
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x174]
push dword [ebx + 8]
push dword [ebp - 0x108]
call dword [sym.imp.bcrypt.dll_BCryptDecrypt]
test eax, eax
jns 0x408f40
xor edi, edi
jmp 0x408f94
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x34]
sub eax, edx
mov ecx, dword [ebp - 0x28]
cmp ecx, eax
jbe 0x408f6a
cmp ecx, 0x7fffffff
ja 0x409aa1
push ecx
lea ecx, [ebp - 0x34]
call fcn.00410710
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
push 1
lea eax, [ebp - 0x28]
push eax
push ecx
push edx
push 0
push 0
push 0
push dword [ebp - 0x174]
push dword [ebx + 8]
push dword [ebp - 0x108]
call dword [sym.imp.bcrypt.dll_BCryptDecrypt]
xor ecx, ecx
test eax, eax
cmovs edi, ecx
mov eax, dword [ebp - 0x104]
mov ecx, dword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
test eax, eax
je 0x408faf
push 0
push eax
call ecx
mov ecx, dword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
mov eax, dword [ebp - 0x110]
test eax, eax
je 0x408fbe
push 0
push eax
call ecx
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x408fcf
push eax
call dword [sym.imp.bcrypt.dll_BCryptDestroyKey]
mov eax, dword [ebp - 0x10c]
test eax, eax
je 0x408fe0
push eax
call dword [sym.imp.bcrypt.dll_BCryptDestroyHash]
mov ecx, dword [ebp - 0x154]
test ecx, ecx
je 0x408ffa
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
je 0x40900e
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
je 0x409712
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov edx, eax
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x409021
sub edx, esi
lea ecx, [ebp - 0x58]
push edx
push eax
call fcn.00402c50
push ecx
push 0x4377ec
lea ecx, [ebp - 0x58]
call fcn.0040fec0
push ecx
mov esi, 2
lea ecx, [ebp - 0x58]
push 0x437788
sub esi, eax
call fcn.0040fec0
push ecx
push 0x4377ec
lea ecx, [ebp - 0x58]
add esi, eax
call fcn.0040fec0
mov dword [ebp - 0x170], 0
lea edx, [eax - 1]
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0xf
cmp ecx, edx
jb 0x409aa6
sub ecx, edx
lea eax, [ebp - 0x58]
cmp ecx, esi
cmovb esi, ecx
cmp dword [ebp - 0x44], 0x10
push esi
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x170]
add eax, edx
push eax
call fcn.00402c50
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x58]
call fcn.004101e0
mov edx, dword [ebp - 0x15c]
cmp edx, 0x10
jb 0x409101
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4090f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
push 0
push 0x43c1c0
mov edx, 0x43c1b0
lea ecx, [ebp - 0x164]
call fcn.004038b0
lea ecx, [ebp - 0x6c]
add esp, 8
cmp ecx, eax
je 0x409149
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], ecx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x40914d
xor esi, esi
xor edi, edi
mov ecx, dword [ebp - 0x164]
test ecx, ecx
je 0x409187
mov edx, dword [ebp - 0x15c]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x40917d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409aab
push edx
push ecx
call fcn.00413ec3
add esp, 8
sub edi, esi
lea ecx, [ebp - 0x100]
lea eax, [edi - 1]
push eax
push esi
call fcn.00402c50
mov dword [ebp - 0x68], esi
call fcn.00417c38
cdq
mov ecx, 0xa
idiv ecx
lea ecx, [ebp - 0x1a8]
add edx, 5
call fcn.004089d0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x58]
cmp dword [ebp - 0x44], 0x10
push dword [ebp - 0x48]
cmovae ecx, dword [ebp - 0x58]
push ecx
push ecx
mov ecx, eax
call fcn.00410ba0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x170], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x160], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 0x17
push eax
lea edx, [ebp - 0x170]
lea ecx, [ebp - 0x190]
call fcn.00410f50
add esp, 4
lea ecx, [ebp - 0xe8]
push eax
call fcn.004101e0
mov edx, dword [ebp - 0x17c]
cmp edx, 0x10
jb 0x40927d
mov ecx, dword [ebp - 0x190]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409273
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ab0
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x15c]
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0xf
mov byte [ebp - 0x190], 0
cmp edx, 0x10
jb 0x4092d6
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4092cc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ab0
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x194]
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0xf
mov byte [ebp - 0x170], 0
cmp edx, 0x10
jb 0x40932f
mov ecx, dword [ebp - 0x1a8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409325
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ab0
push edx
push ecx
call fcn.00413ec3
add esp, 8
cmp dword [ebp - 0xec], 0x10
lea eax, [ebp - 0x100]
mov dword [ebp - 0xf0], 0
cmovae eax, dword [ebp - 0x100]
push 0x4377f4
mov byte [eax], 0
lea eax, [ebp - 0xe8]
cmp dword [ebp - 0xd4], 0x10
cmovae eax, dword [ebp - 0xe8]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.004187c7
mov eax, dword [ebp - 0x114]
add esp, 0xc
test eax, eax
je 0x409712
push eax
mov eax, dword [ebp - 0x28]
dec eax
push eax
push 1
push dword [ebp - 0x34]
call fcn.004186cb
push dword [ebp - 0x114]
call fcn.004180f9
add esp, 0x14
lea ecx, [ebp - 0x164]
mov edx, 0x43c6a0
push 0
push 0x43c6b0
call fcn.004038b0
lea ecx, [ebp - 0x84]
add esp, 8
cmp ecx, eax
je 0x4093f3
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], ecx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x4093f7
xor esi, esi
xor edi, edi
mov ecx, dword [ebp - 0x164]
test ecx, ecx
je 0x409431
mov edx, dword [ebp - 0x15c]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x409427
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ab5
push edx
push ecx
call fcn.00413ec3
add esp, 8
sub edi, esi
lea ecx, [ebp - 0xd0]
dec edi
push edi
push esi
call fcn.00402c50
mov dword [ebp - 0x80], esi
call fcn.00407390
push 0
push 0x43c3b0
mov edx, 0x43c3a0
lea ecx, [ebp - 0x164]
call fcn.004038b0
lea ecx, [ebp - 0x78]
add esp, 8
cmp ecx, eax
je 0x409497
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x74], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x70], ecx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x409499
xor edi, edi
mov ecx, dword [ebp - 0x164]
test ecx, ecx
je 0x4094d3
mov edx, dword [ebp - 0x15c]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x4094c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409aba
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov eax, dword [ebp - 0x178]
lea ecx, [ebp - 0xb8]
sub eax, edi
dec eax
push eax
push edi
call fcn.00402c50
cmp dword [ebp - 0xa4], 0x10
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x74], edi
cmovae eax, dword [ebp - 0xb8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp dword [ebp - 0xa4], 0x10
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xa8], 0
cmovae ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x154], eax
push 0
mov byte [ecx], 0
test eax, eax
je 0x409629
push 0x43c230
mov edx, 0x43c210
lea ecx, [ebp - 0x164]
call fcn.004038b0
lea ecx, [ebp - 0x40]
add esp, 8
cmp ecx, eax
je 0x409582
mov ecx, dword [eax]
mov dword [ebp - 0x40], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x38], ecx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [ebp - 0x164]
test ecx, ecx
je 0x4095bc
mov edx, dword [ebp - 0x15c]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x4095b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409abf
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x158]
sub ecx, eax
dec ecx
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402c50
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x8c], 0x10
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0xa0]
cmovae eax, dword [ebp - 0xa0]
push eax
push dword [ebp - 0x154]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dword [ebp - 0x8c], 0x10
lea ecx, [ebp - 0xa0]
mov edx, eax
mov dword [ebp - 0x90], 0
cmovae ecx, dword [ebp - 0xa0]
mov byte [ecx], 0
test edx, edx
jne 0x409634
push dword [ebp - 0x154]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x409716
cmp dword [ebp - 0xbc], 0x10
lea eax, [ebp - 0xd0]
xorps xmm0, xmm0
mov dword [ebp - 0x14c], 0
cmovae eax, dword [ebp - 0xd0]
cmp dword [ebp - 0xd4], 0x10
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0xe8]
cmovae eax, dword [ebp - 0xe8]
cmp dword [ebp - 0x44], 0x10
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x150]
push eax
mov dword [ebp - 0x13c], 0
movlpd qword [ebp - 0x130], xmm0
movlpd qword [ebp - 0x128], xmm0
movlpd qword [ebp - 0x120], xmm0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x150], 0x3c
mov dword [ebp - 0x134], 0
call edx
cmp dword [ebp - 0xbc], 0x10
lea eax, [ebp - 0xd0]
push dword [ebp - 0x154]
cmovae eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc0], 0
mov byte [eax], 0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x158], 1
jmp 0x409720
xor esi, esi
xor edi, edi
mov dword [ebp - 0x158], 0
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x409769
mov edx, dword [ebp - 0x2c]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x40974a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x40979d
mov edx, dword [ebp - 0x38]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x409793
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
test edi, edi
je 0x4097ce
mov ecx, dword [ebp - 0x70]
mov eax, edi
sub ecx, edi
cmp ecx, 0x1000
jb 0x4097c4
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push ecx
push edi
call fcn.00413ec3
add esp, 8
test esi, esi
je 0x4097ff
mov ecx, dword [ebp - 0x7c]
mov eax, esi
sub ecx, esi
cmp ecx, 0x1000
jb 0x4097f5
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push ecx
push esi
call fcn.00413ec3
add esp, 8
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x409833
mov edx, dword [ebp - 0x64]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x409829
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0x8c]
cmp edx, 0x10
jb 0x40986d
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409863
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
cmp edx, 0x10
jb 0x4098c2
mov ecx, dword [ebp - 0xb8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4098b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
cmp edx, 0x10
jb 0x409917
mov ecx, dword [ebp - 0xd0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40990d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], 0
cmp edx, 0x10
jb 0x40996c
mov ecx, dword [ebp - 0xe8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409962
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0xf
mov byte [ebp - 0xe8], 0
cmp edx, 0x10
jb 0x4099c1
mov ecx, dword [ebp - 0x100]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4099b7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x4099f5
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4099eb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov edx, dword [ebx + 0x28]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
cmp edx, 0x10
jb 0x409a3b
mov ecx, dword [ebx + 0x14]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409a31
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov ecx, dword [ebx + 8]
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0xf
mov byte [ebx + 0x14], 0
test ecx, ecx
je 0x409a7d
mov edx, dword [ebx + 0x10]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x409a73
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409ac4
push edx
push ecx
call fcn.00413ec3
add esp, 8
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00413918
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.00410680
call fcn.00410dc0
call fcn.00419536
call fcn.00419536
call fcn.00419536
call fcn.00419536
call fcn.00419536
call fcn.00419536
int3