Function at 0x40c1b8
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a4
mov eax, dword [0x423228]
mov ecx, dword [0x4231e0]
add ecx, eax
push ebx
push esi
push edi
test ecx, ecx
je 0x40c1ee
mov ecx, dword [0x42321c]
mov eax, dword [0x4231f8]
mov edx, 0x15f
sub edx, ecx
add eax, edx
mov dword [0x4231f8], eax
mov eax, dword [0x42322c]
mov ecx, dword [0x4231f0]
lea edx, [eax + ecx - 0x212]
mov dword [0x42322c], edx
push fcn.00402680
push dword fs:[0]
mov dword fs:[0], esp
mov esi, dword [sym.imp.IMAGEHLP.dll_ImageEnumerateCertificates]
lea eax, [ebp - 0x50]
push 0x61f
lea ecx, [ebp - 0x4c]
push eax
push ecx
xor ebx, ebx
push 0x39
push ebx
mov dword [ebp - 0x4c], 0x2f
mov dword [ebp - 0x50], 0x39
call esi
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x22], edx
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x1e], edx
mov dword [ebp - 0xe], ecx
mov edi, dword [sym.imp.IMAGEHLP.dll_UpdateDebugInfoFile]
mov dword [ebp - 0x2e], eax
mov word [ebp - 0x1a], dx
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x2a], eax
lea edx, [ebp - 0x1ac]
mov byte [ebp - 6], cl
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x34]
push eax
lea edx, [ebp - 0x24]
push ecx
push edx
mov byte [ebp - 0x24], 0x22
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x34], 0x2e
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x14], 0x37
mov byte [ebp - 0x13], bl
call edi
lea eax, [ebp - 0x70]
push eax
push ebx
call dword [sym.imp.IMAGEHLP.dll_TouchFileTimes]
lea ecx, [ebp - 0x70]
push ecx
push ebx
call dword [sym.imp.IMAGEHLP.dll_TouchFileTimes]
xor edx, edx
xor eax, eax
mov dword [ebp - 0x22], edx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x1e], edx
mov dword [ebp - 0x5a], eax
mov dword [ebp - 0x1a], edx
lea edx, [ebp - 0x24]
push ecx
push edx
mov byte [ebp - 0x24], 0x38
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x5c], 0x20
mov byte [ebp - 0x5b], bl
mov dword [ebp - 0x56], eax
call dword [sym.imp.IMAGEHLP.dll_ImageLoad]
lea eax, [ebp - 0x4c]
push 0x61f
lea ecx, [ebp - 0x50]
push eax
push ecx
push 0x29
mov dword [ebp - 0x50], 0x3a
mov dword [ebp - 0x4c], 0x27
push ebx
call esi
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x22], edx
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x1e], edx
mov dword [ebp - 0xe], ecx
mov dword [ebp - 0x2e], eax
mov word [ebp - 0x1a], dx
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x2a], eax
lea edx, [ebp - 0x1ac]
mov byte [ebp - 6], cl
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x34]
push eax
lea edx, [ebp - 0x24]
push ecx
push edx
mov byte [ebp - 0x24], 0x23
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x34], 0x23
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x14], 0x37
mov byte [ebp - 0x13], bl
call edi
mov esi, dword [sym.imp.IMAGEHLP.dll_UnMapAndLoad]
lea eax, [ebp - 0xb4]
push eax
call esi
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x46], ecx
mov dword [ebp - 0x12], edx
mov dword [ebp - 0x42], ecx
mov edi, dword [sym.imp.IMAGEHLP.dll_MapAndLoad]
mov dword [ebp - 0x3e], ecx
mov dword [ebp - 0xe], edx
mov dword [ebp - 0x3a], ecx
mov dword [ebp - 0xa], edx
mov byte [ebp - 0x36], cl
push 1
lea eax, [ebp - 0xb4]
mov byte [ebp - 6], dl
push ebx
lea ecx, [ebp - 0x14]
push eax
lea edx, [ebp - 0x48]
push ecx
push edx
mov byte [ebp - 0x48], 0x3b
mov byte [ebp - 0x47], bl
mov byte [ebp - 0x14], 0x34
mov byte [ebp - 0x13], bl
call edi
push ebx
push ebx
push 0x2d
push 0x23
call dword [sym.imp.IMAGEHLP.dll_ImageGetDigestStream]
push 0x22
push 0x24
call dword [sym.imp.IMAGEHLP.dll_ImageRemoveCertificate]
push ebx
push ebx
push 0x33
push 0x23
call dword [sym.imp.IMAGEHLP.dll_ImageGetDigestStream]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x22], eax
mov byte [ebp - 0x24], 0x3d
mov dword [ebp - 0x1e], eax
mov byte [ebp - 0x23], bl
mov dword [ebp - 0x1a], eax
mov byte [ebp - 0x5c], 0x20
mov byte [ebp - 0x5b], bl
mov dword [ebp - 0x5a], ecx
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x24]
push edx
push eax
mov dword [ebp - 0x56], ecx
call dword [sym.imp.IMAGEHLP.dll_ImageLoad]
lea ecx, [ebp - 0xb4]
push ecx
call esi
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x22], edx
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x1e], edx
mov dword [ebp - 0xe], ecx
mov dword [ebp - 0x2e], eax
mov word [ebp - 0x1a], dx
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x2a], eax
lea edx, [ebp - 0x1ac]
mov byte [ebp - 6], cl
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x34]
push eax
lea edx, [ebp - 0x24]
push ecx
push edx
mov byte [ebp - 0x24], 0x2d
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x34], 0x26
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x14], 0x37
mov byte [ebp - 0x13], bl
call dword [sym.imp.IMAGEHLP.dll_UpdateDebugInfoFile]
lea eax, [ebp - 0xb4]
push eax
call esi
lea ecx, [ebp - 0x4c]
push 0x61f
lea edx, [ebp - 0x50]
push ecx
push edx
push 0x2c
push ebx
mov dword [ebp - 0x50], 0x34
mov dword [ebp - 0x4c], 0x39
call dword [sym.imp.IMAGEHLP.dll_ImageEnumerateCertificates]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x46], eax
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x42], eax
mov dword [ebp - 0xe], ecx
mov dword [ebp - 0x3e], eax
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x3a], eax
push 1
mov byte [ebp - 0x36], al
lea edx, [ebp - 0xb4]
mov byte [ebp - 6], cl
push ebx
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x48]
push eax
push ecx
mov byte [ebp - 0x48], 0x3b
mov byte [ebp - 0x47], bl
mov byte [ebp - 0x14], 0x20
mov byte [ebp - 0x13], bl
call edi
push ebx
push ebx
push 0x3b
push 0x34
call dword [sym.imp.IMAGEHLP.dll_ImageGetDigestStream]
lea edx, [ebp - 0xb4]
push edx
call esi
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x12], ecx
xor eax, eax
mov dword [ebp - 0x6e], edx
mov dword [ebp - 0xe], ecx
mov dword [ebp - 0x22], eax
mov dword [ebp - 0x6a], edx
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x1e], eax
mov dword [ebp - 0x66], edx
mov word [ebp - 6], cx
mov word [ebp - 0x1a], ax
mov word [ebp - 0x62], dx
mov byte [ebp - 4], cl
lea eax, [ebp - 0x1ac]
mov byte [ebp - 0x60], dl
push 0x35
lea ecx, [ebp - 0x70]
push eax
lea edx, [ebp - 0x14]
push ecx
lea eax, [ebp - 0x24]
push edx
push eax
mov byte [ebp - 0x24], 0xe
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x14], 0x32
mov byte [ebp - 0x13], bl
mov byte [ebp - 0x70], 0x53
mov byte [ebp - 0x6f], bl
call dword [sym.imp.IMAGEHLP.dll_UpdateDebugInfoFileEx]
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x24]
push ecx
push edx
push 0xa06
push 0x3f
mov dword [ebp - 0x4c], 0x36
call dword [sym.imp.IMAGEHLP.dll_ImageGetCertificateData]
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [ebp - 0x22], ecx
mov dword [ebp - 0x5a], eax
mov dword [ebp - 0x32], edx
mov dword [ebp - 0x1e], ecx
mov dword [ebp - 0x56], eax
mov dword [ebp - 0x2e], edx
mov byte [ebp - 0x1a], cl
lea eax, [ebp - 0x34]
mov byte [ebp - 0x2a], dl
push 0x31
lea ecx, [ebp - 0x24]
push eax
lea edx, [ebp - 0x5c]
push ecx
push edx
mov byte [ebp - 0x5c], 0x2e
mov byte [ebp - 0x5b], bl
mov byte [ebp - 0x24], 0x20
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x34], 0x29
mov byte [ebp - 0x33], bl
call dword [sym.imp.IMAGEHLP.dll_SplitSymbols]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x46], eax
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x42], eax
mov dword [ebp - 0xe], ecx
mov dword [ebp - 0x3e], eax
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x3a], eax
mov byte [ebp - 0x48], 0x3b
mov byte [ebp - 0x47], bl
mov byte [ebp - 0x36], al
mov byte [ebp - 0x14], 0x2b
mov byte [ebp - 0x13], bl
mov byte [ebp - 6], cl
push 1
lea edx, [ebp - 0xb4]
push ebx
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x48]
push eax
push ecx
call edi
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x22], edx
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x1e], edx
mov dword [ebp - 0xe], ecx
mov dword [ebp - 0x2e], eax
mov word [ebp - 0x1a], dx
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x2a], eax
lea edx, [ebp - 0x1ac]
mov byte [ebp - 6], cl
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x34]
push eax
lea edx, [ebp - 0x24]
push ecx
push edx
mov byte [ebp - 0x24], 0x3f
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x34], 0x3f
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x14], 0x37
mov byte [ebp - 0x13], bl
call dword [sym.imp.IMAGEHLP.dll_UpdateDebugInfoFile]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x46], eax
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x42], eax
mov dword [ebp - 0xe], ecx
mov dword [ebp - 0x3e], eax
mov dword [ebp - 0xa], ecx
mov dword [ebp - 0x3a], eax
push 1
mov byte [ebp - 0x36], al
lea edx, [ebp - 0xb4]
mov byte [ebp - 6], cl
push ebx
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x48]
push eax
push ecx
mov byte [ebp - 0x48], 0x3b
mov byte [ebp - 0x47], bl
mov byte [ebp - 0x14], 0x3f
mov byte [ebp - 0x13], bl
call edi
push ebx
push ebx
push 0x38
push 0x2c
call dword [sym.imp.IMAGEHLP.dll_ImageGetDigestStream]
lea edx, [ebp - 0x70]
push edx
push ebx
call dword [sym.imp.IMAGEHLP.dll_TouchFileTimes]
xor eax, eax
mov byte [ebp - 0x48], 0x3b
mov dword [ebp - 0x46], eax
mov byte [ebp - 0x47], bl
mov dword [ebp - 0x42], eax
mov byte [ebp - 0x14], 0x2f
mov dword [ebp - 0x3e], eax
mov byte [ebp - 0x13], bl
mov dword [ebp - 0x3a], eax
xor ecx, ecx
mov byte [ebp - 0x36], al
mov dword [ebp - 0x12], ecx
push 1
mov dword [ebp - 0xe], ecx
lea edx, [ebp - 0xb4]
mov dword [ebp - 0xa], ecx
push ebx
mov byte [ebp - 6], cl
lea eax, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x48]
push eax
push ecx
call edi
lea edx, [ebp - 0x24]
push edx
push 0x27
push 0x3e
call dword [sym.imp.IMAGEHLP.dll_ImageGetCertificateHeader]
push ebx
push ebx
push 0x35
push 0x34
call dword [sym.imp.IMAGEHLP.dll_ImageGetDigestStream]
lea eax, [ebp - 0xb4]
push eax
call esi
mov edx, dword [0x4232bc]
mov ecx, 0xfffffe36
cmp edx, ebx
mov eax, 0xb5f
je 0x40c8cc
sub eax, ecx
lea edx, [eax + eax + 0x22e]
lea eax, [ecx + edx]
cmp eax, ebx
je 0x40c711
lea edx, [eax - 0x182]
mov eax, 0x456
sub eax, edx
mov ecx, eax
sub ecx, edx
je 0x40c725
lea eax, [eax + edx + 0x361]
mov esi, dword [0x4232bc]
lea eax, [eax + eax - 0x2b8]
dec esi
mov dword [0x4232bc], esi
mov esi, 0xfffffb70
sub esi, eax
lea edx, [esi - 0x240]
test edx, edx
je 0x40c753
mov ecx, 0x100
sub ecx, esi
add eax, ecx
lea edx, [esi + 0x21e]
test edx, edx
je 0x40c761
lea eax, [eax + esi - 0x60]
add eax, eax
mov ecx, 0x2f
sub ecx, eax
add esi, ecx
sub eax, esi
mov edx, esi
sub edx, eax
je 0x40c77b
lea esi, [esi + eax - 0x286]
lea ecx, [esi + 0x135]
test ecx, ecx
je 0x40c78e
mov edx, 0xfffffc36
sub edx, eax
add esi, edx
push 0x32
push 0x22
call dword [sym.imp.IMAGEHLP.dll_ImageRemoveCertificate]
lea eax, [ebp - 0x5c]
push eax
push 0x39
push 0x40
call dword [sym.imp.IMAGEHLP.dll_ImageGetCertificateHeader]
lea eax, [esi + esi]
mov edi, eax
sub edi, esi
sub edi, 0x277
lea ecx, [edi - 0x227]
test ecx, ecx
je 0x40c7c0
lea esi, [eax + edi]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x46], eax
xor edx, edx
mov dword [ebp - 0x82], ecx
mov dword [ebp - 0x42], eax
mov dword [ebp - 0x22], edx
mov dword [ebp - 0x7e], ecx
mov dword [ebp - 0x3e], eax
mov dword [ebp - 0x1e], edx
mov dword [ebp - 0x7a], ecx
mov word [ebp - 0x3a], ax
mov word [ebp - 0x1a], dx
mov word [ebp - 0x76], cx
mov byte [ebp - 0x38], al
lea edx, [ebp - 0x1ac]
mov byte [ebp - 0x74], cl
push 0x40
lea eax, [ebp - 0x84]
push edx
lea ecx, [ebp - 0x48]
push eax
lea edx, [ebp - 0x24]
push ecx
push edx
mov byte [ebp - 0x24], 0xe
mov byte [ebp - 0x23], bl
mov byte [ebp - 0x48], 0x28
mov byte [ebp - 0x47], bl
mov byte [ebp - 0x84], 0x53
mov byte [ebp - 0x83], bl
call dword [sym.imp.IMAGEHLP.dll_UpdateDebugInfoFileEx]
xor eax, eax
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x6e], edx
mov dword [ebp - 0x12], ecx
mov dword [ebp - 0x2e], eax
mov dword [ebp - 0x6a], edx
mov dword [ebp - 0xe], ecx
mov word [ebp - 0x2a], ax
mov dword [ebp - 0x66], edx
mov dword [ebp - 0xa], ecx
lea eax, [ebp - 0x2a4]
mov byte [ebp - 0x62], dl
lea ecx, [ebp - 0x70]
push eax
lea edx, [ebp - 0x14]
push ecx
lea eax, [ebp - 0x34]
push edx
push eax
mov byte [ebp - 0x34], 0x2b
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x14], 0x2d
mov byte [ebp - 0x13], bl
mov byte [ebp - 0x70], 0x37
mov byte [ebp - 0x6f], bl
call dword [sym.imp.IMAGEHLP.dll_UpdateDebugInfoFile]
lea ecx, [esi + edi]
test ecx, ecx
je 0x40c88f
mov edx, 0xfffffde9
sub edx, edi
add esi, edx
lea ecx, [esi + esi - 0x99]
mov eax, ecx
add ecx, 0xfffff97f
neg eax
test ecx, ecx
lea eax, [edi + eax*2]
je 0x40c8ac
mov eax, 0x43
mov edx, dword [0x4232bc]
add eax, 0x6e8
mov dword [ebp - 0x4c], eax
cmp edx, ebx
mov eax, 0x14d
mov ecx, 0xfffffdbd
jne 0x40c6fb
lea edx, [ecx - 0x29e]
test edx, edx
je 0x40c8d8
mov ecx, eax
lea eax, [eax + eax*2]
lea edx, [eax + 0x6a]
test edx, edx
je 0x40c8e7
sub eax, 0x2b1
lea edx, [ecx + 0xb5]
test edx, edx
je 0x40c8fa
mov edx, 0xc4
sub edx, ecx
add eax, edx
lea edx, [eax + 0x1c2]
test edx, edx
je 0x40c906
neg ecx
lea eax, [eax + ecx*2]
neg eax
jmp 0x44cf12