Function at 0x1e3ef0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x70
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push ebx
call fcn.0019cee0
add esp, 4
mov esi, eax
push edi
push ebx
call fcn.0019cf00
add esp, 8
cmp dword [edi + 0x498], 0
je 0x1e3f3b
test byte [esi + 0x44], 1
je 0x1e3f3b
cmp dword [esi], 0
jne 0x1e3f3b
cmp dword [esi + 0x24], 0
jne 0x1e3f3b
cmp dword [eax + 0x1c], 0
je 0x1e4732
mov dword [esp + 0x10], 0
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x88]
test eax, eax
je 0x1e401d
add eax, 0xc4
push 0x13
push 0x75d020
push eax
call fcn.001c1310
add esp, 0xc
test eax, eax
je 0x1e401d
mov esi, eax
cmp dword [eax + 4], 0
je 0x1e401d
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x498], 0
js 0x1e3fcb
lea eax, [esp + 0x58]
push eax
call fcn.0018d8c0
sub esp, 0x1c
movups xmm0, xmmword [esi + 8]
movups xmmword [esp + 0x10], xmm0
movups xmm0, xmmword [esp + 0x78]
movups xmmword [esp], xmm0
call fcn.0018d9a0
add esp, 0x20
mov ecx, eax
mov edi, edx
mov eax, 0x3e8
mov edx, dword [ebp + 0xc]
imul dword [edx + 0x498]
cmp ecx, eax
sbb edi, edx
jge 0x1e401d
push dword [ebp + 8]
call fcn.0019cee0
add esp, 4
mov ecx, dword [esi]
mov eax, dword [eax + 4]
test ecx, ecx
je 0x1e3fed
test eax, eax
je 0x1e401d
push eax
push ecx
call fcn.004f8b80
add esp, 8
test eax, eax
jne 0x1e401d
mov esi, dword [esi + 4]
test esi, esi
setne al
and al, byte [esp + 0x10]
cmp al, 1
jne 0x1e401d
push esi
call fcn.0039f750
add esp, 4
test eax, eax
je 0x1e401d
push esi
push ebx
call fcn.002778f0
add esp, 8
jmp 0x1e472e
push ebx
call fcn.002778e0
add esp, 4
mov dword [esp + 4], eax
mov edi, dword [ebp + 8]
push edi
call fcn.0019cee0
add esp, 4
mov esi, eax
mov ebx, dword [ebp + 0xc]
push ebx
push edi
call fcn.0019cf00
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x24]
xor edx, edx
mov dword [esp + 0x28], eax
test eax, eax
jne 0x1e4057
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x20], eax
test byte [ebx + 0x6eb], 0x20
je 0x1e40cc
mov eax, dword [ebx + 0xd20]
test eax, eax
je 0x1e408c
cmp dword [ebp + 8], 0
je 0x1e40cc
cmp dword [eax + 4], 0
jg 0x1e4092
jmp 0x1e40cc
cmp dword [ebp + 8], 0
je 0x1e40cc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jle 0x1e40cc
xor eax, eax
cmp dword [esp + 0x28], 0
setne al
test edx, edx
mov esi, ecx
mov ecx, 0x75d05a
cmovne ecx, edx
push eax
push ecx
push 0x75d034
push dword [ebp + 8]
push ebx
mov edi, edx
call fcn.001b50a0
mov edx, edi
mov ecx, esi
add esp, 0x14
cmp dword [esp + 4], 0
je 0x1e4262
test byte [esp + 0x3c], 1
jne 0x1e426c
cmp dword [esp + 0x20], 0
je 0x1e4186
mov esi, ecx
call fcn.003902f0
push eax
push dword [esp + 8]
call fcn.0039f770
add esp, 8
test eax, eax
je 0x1e4601
push 1
push dword [esp + 0x24]
push eax
call fcn.00390570
add esp, 0xc
test eax, eax
je 0x1e4601
mov edi, ebx
test byte [ebx + 0x6eb], 0x20
je 0x1e4149
mov eax, dword [edi + 0xd20]
test eax, eax
je 0x1e413b
cmp dword [eax + 4], 0
jle 0x1e4149
push 0x75d1f6
push edi
call fcn.001b4fd0
add esp, 8
push 0xc
push dword [esp + 8]
call fcn.003a08e0
add esp, 8
test byte [edi + 0x6eb], 0x20
mov ecx, esi
je 0x1e4186
mov eax, dword [ebx + 0xd20]
test eax, eax
je 0x1e4172
cmp dword [eax + 4], 0
jle 0x1e4186
push dword [esp + 0x20]
push 0x75d214
push ebx
call fcn.001b4fd0
mov ecx, esi
add esp, 0xc
xor edi, edi
test byte [esp + 0x3c], 1
je 0x1e41c2
mov esi, ecx
push 0x8000
push dword [esp + 8]
call fcn.003a08e0
add esp, 8
cmp dword [esp + 0x20], 0
jne 0x1e41c2
mov eax, dword [esi + 0x68]
and eax, 0x10
jne 0x1e41c2
push 0x80000
push dword [esp + 8]
call fcn.003a08e0
add esp, 8
test edi, edi
sete al
and al, byte [esp + 0x10]
cmp al, 1
mov eax, edi
jne 0x1e478d
push dword [ebp + 8]
call fcn.0019cee0
add esp, 4
mov ebx, dword [ebx + 0x88]
test ebx, ebx
je 0x1e472e
mov edi, eax
add ebx, 0xc4
push 0x13
push 0x75d020
push ebx
call fcn.001c1310
add esp, 0xc
mov esi, eax
test eax, eax
je 0x1e4688
push dword [esp + 4]
call fcn.0039f750
add esp, 4
test eax, eax
mov eax, 0
je 0x1e478d
mov eax, dword [edi + 4]
test eax, eax
je 0x1e46e9
push 0x75caa0
push 0xd5a
push eax
call fcn.001773f0
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x1e46eb
push dword [esp + 4]
call fcn.0039f620
add esp, 4
jmp 0x1e472e
mov eax, 0x1b
jmp 0x1e478d
mov dword [esp + 0x18], edx
xor eax, eax
mov dword [esp + 0xc], ecx
test byte [ecx + 0x68], 0x40
mov dword [esp + 0x14], 0
jne 0x1e42f2
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x1e47bc
mov eax, dword [ecx + 4]
mov esi, 0x4d
test eax, eax
js 0x1e477d
push eax
push dword [ecx]
call fcn.002f4e00
add esp, 8
test eax, eax
je 0x1e467e
mov edi, eax
push 0
push 0
push 0
push eax
call fcn.00368040
add esp, 0x10
test eax, eax
je 0x1e46db
mov dword [esp + 8], eax
push eax
call fcn.00389950
add esp, 4
test eax, eax
jle 0x1e475f
mov dword [esp + 0x24], edi
xor ebx, ebx
xor edi, edi
mov esi, dword [esp + 8]
jmp 0x1e4633
mov cl, 1
mov dword [esp + 0x14], 0
jmp 0x1e4330
mov cl, 1
mov dword [esp + 0x14], ecx
nop word cs:[eax + eax]
push esi
push eax
push ebx
call fcn.001b4fd0
add esp, 0xc
mov eax, 1
test byte [esp + 0x4c], 1
mov ecx, 0
je 0x1e4284
mov dword [esp + 0x4c], ecx
mov esi, dword [eax*4 + 0x75d068]
push esi
push 0
nop
call reloc.crypt32.dll_CertOpenSystemStoreA
test eax, eax
je 0x1e45b0
mov edi, eax
mov dword [esp + 0x48], esi
push 0
push eax
nop
call reloc.crypt32.dll_CertEnumCertificatesInStore
mov esi, eax
mov al, 1
mov dword [esp + 0x44], eax
test esi, esi
mov dword [esp + 8], edi
je 0x1e4530
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x30], 0
jmp 0x1e43a6
mov edi, dword [esp + 8]
push esi
push edi
nop
call reloc.crypt32.dll_CertEnumCertificatesInStore
mov esi, eax
test eax, eax
je 0x1e4520
mov eax, dword [esi + 4]
mov dword [esp + 0x54], eax
test eax, eax
je 0x1e4394
lea ebx, [esp + 0x58]
push ebx
call 0x8fd0a43
nop
mov eax, dword [esi + 0xc]
add eax, 0x20
push ebx
push eax
mov edi, dword [0x8a2914]
call edi
test eax, eax
jg 0x1e4390
mov eax, dword [esi + 0xc]
add eax, 0x28
push eax
push ebx
call edi
test eax, eax
jg 0x1e4390
push 2
lea eax, [esp + 0x3e]
push eax
push dword [esi + 0xc]
push dword [esi]
nop
call reloc.crypt32.dll_CertGetIntendedKeyUsage
test eax, eax
mov edi, dword [esp + 8]
je 0x1e4401
test byte [esp + 0x3a], 4
je 0x1e4394
jmp 0x1e440b
call 0x8fb0b82
nop
test eax, eax
jne 0x1e4394
lea eax, [esp + 0x34]
push eax
push 0
push 0
push esi
call reloc.crypt32.dll_CertGetEnhancedKeyUsage
nop
test eax, eax
je 0x1e4394
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1e445f
cmp eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
jbe 0x1e4463
push 0x75caa0
push 0xc09
push eax
push ecx
mov ebx, ecx
call fcn.001774d0
add esp, 0x10
test eax, eax
je 0x1e45df
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
mov ecx, eax
jmp 0x1e4463
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x34]
push eax
push ecx
push 0
push esi
mov ebx, ecx
nop
call reloc.crypt32.dll_CertGetEnhancedKeyUsage
test eax, eax
mov dword [esp + 0x30], ebx
je 0x1e4394
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
test eax, eax
je 0x1e44c4
mov eax, dword [ebx + 4]
mov dword [esp + 0x50], eax
xor ebx, ebx
nop word cs:[eax + eax]
mov eax, dword [esp + 0x50]
push dword [eax + ebx*4]
push 0x75d24d
call fcn.004f8b80
add esp, 8
test eax, eax
je 0x1e44d5
inc ebx
cmp dword [esp + 0x24], ebx
jne 0x1e44a0
jmp 0x1e4394
call 0x8fb0b82
nop
cmp eax, 0x80092004
jne 0x1e4394
push dword [esi + 8]
lea eax, [esp + 0x58]
push eax
push 0
call fcn.003ae3b0
add esp, 0xc
test eax, eax
je 0x1e4394
push eax
push dword [esp + 8]
mov ebx, eax
call fcn.0039fb80
add esp, 8
cmp eax, 1
sete al
mov ecx, dword [esp + 0x2c]
or cl, al
mov dword [esp + 0x2c], ecx
push ebx
call fcn.003ae400
add esp, 4
jmp 0x1e4394
xor esi, esi
xor edi, edi
mov ebx, dword [esp + 0x30]
jmp 0x1e453e
mov dword [esp + 0x2c], 0
xor edi, edi
xor ebx, ebx
xor esi, esi
push 0x75caa0
push 0xc43
push ebx
call fcn.001775a0
add esp, 0xc
push esi
nop
call reloc.crypt32.dll_CertFreeCertificateContext
push 0
push dword [esp + 0xc]
nop
call reloc.crypt32.dll_CertCloseStore
cmp byte [esp + 0x44], 0
mov ebx, dword [ebp + 0xc]
je 0x1e41c2
test byte [esp + 0x2c], 1
mov esi, dword [esp + 0x48]
je 0x1e45b0
mov al, 1
mov dword [esp + 0x14], eax
test byte [ebx + 0x6eb], 0x20
je 0x1e431b
mov ecx, dword [ebx + 0xd20]
mov eax, 0x75d070
test ecx, ecx
je 0x1e42fe
mov dl, 1
mov dword [esp + 0x14], edx
jmp 0x1e45d0
test byte [ebx + 0x6eb], 0x20
je 0x1e431b
mov ecx, dword [ebx + 0xd20]
mov eax, 0x75d097
test ecx, ecx
je 0x1e4310
cmp dword [ecx + 4], 0
jg 0x1e4310
jmp 0x1e431b
push 0x75d222
push dword [ebp + 0xc]
call fcn.001b4f40
add esp, 8
mov edi, 0x1b
mov dword [esp + 0x44], 0
jmp 0x1e453e
push dword [esp + 0x20]
push 0x75d1db
push ebx
call fcn.001b4f40
add esp, 0xc
mov eax, 0x52
jmp 0x1e478d
mov esi, dword [esp + 8]
inc edi
push esi
call fcn.00389950
add esp, 4
cmp edi, eax
jge 0x1e474c
push edi
push esi
call fcn.00389970
add esp, 8
mov esi, eax
mov eax, dword [eax]
test eax, eax
je 0x1e465b
push eax
push dword [esp + 8]
call fcn.0039fb80
add esp, 8
test eax, eax
je 0x1e4742
inc ebx
mov eax, dword [esi + 4]
test eax, eax
je 0x1e461d
push eax
push dword [esp + 8]
call fcn.0039fcd0
add esp, 8
test eax, eax
mov esi, dword [esp + 8]
je 0x1e4742
inc ebx
jmp 0x1e4621
mov esi, 0x1b
jmp 0x1e477d
push 0x75caa0
push 0xd4a
push 0x18
push 1
call fcn.00177310
add esp, 0x10
test eax, eax
je 0x1e472e
mov esi, eax
push 0x1e9440
push eax
push 0x13
push 0x75d020
push ebx
call fcn.001c10e0
add esp, 0x14
test eax, eax
jne 0x1e4210
push 0x75caa0
push 0xd51
push esi
call fcn.001775a0
add esp, 0xc
jmp 0x1e472e
push edi
call fcn.002ed530
add esp, 4
jmp 0x1e477d
xor edi, edi
mov eax, dword [esi + 4]
test eax, eax
je 0x1e470f
push eax
call fcn.0039f620
add esp, 4
push 0x75caa0
push 0xd63
push dword [esi]
call fcn.001775a0
add esp, 0xc
lea eax, [esp + 0x58]
push eax
call fcn.0018d8c0
add esp, 4
movups xmm0, xmmword [esp + 0x58]
movups xmmword [esi + 8], xmm0
mov eax, dword [esp + 4]
mov dword [esi + 4], eax
mov dword [esi], edi
xor eax, eax
jmp 0x1e478d
test byte [eax + 0x68], 0x40
sete al
mov dword [esp + 0x10], eax
jmp 0x1e3f43
mov ebx, dword [ebp + 0xc]
mov esi, 0x4d
jmp 0x1e475b
xor eax, eax
test ebx, ebx
mov esi, 0x4d
cmovg esi, eax
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 0x24]
push fcn.002ea440
push dword [esp + 0xc]
call fcn.003898e0
add esp, 8
push edi
call fcn.002ed530
add esp, 4
test esi, esi
je 0x1e4795
push 0x75d0cb
push ebx
call fcn.001b4f40
add esp, 8
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test byte [ebx + 0x6eb], 0x20
je 0x1e47bc
mov eax, dword [ebx + 0xd20]
test eax, eax
je 0x1e47ae
cmp dword [eax + 4], 0
jle 0x1e47bc
push 0x75d0ef
push ebx
call fcn.001b4fd0
add esp, 8
mov edx, dword [esp + 0x18]
mov eax, edx
or eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
je 0x1e40e2
test edx, edx
je 0x1e47f1
push edx
push dword [esp + 8]
call fcn.0039ec10
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add esp, 8
test eax, eax
je 0x1e4899
cmp dword [esp + 0x1c], 0
je 0x1e4818
push dword [esp + 0x1c]
push dword [esp + 8]
call fcn.0039ec70
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add esp, 8
test eax, eax
je 0x1e48e9
test byte [ebx + 0x6eb], 0x20
je 0x1e40e2
mov eax, dword [ebx + 0xd20]
test eax, eax
je 0x1e4835
cmp dword [eax + 4], 0
jle 0x1e4869
test edx, edx
mov eax, 0x75d05a
cmovne eax, edx
push eax
push 0x75d1c3
push ebx
call fcn.001b4fd0
mov ecx, dword [esp + 0x18]
add esp, 0xc
test byte [ebx + 0x6eb], 0x20
je 0x1e40e2
mov eax, dword [ebx + 0xd20]
test eax, eax
je 0x1e4873
cmp dword [eax + 4], 0
jle 0x1e40e2
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov eax, 0x75d05a
cmovne eax, ecx
push eax
push 0x75d1cf
push ebx
call fcn.001b4fd0
mov ecx, dword [esp + 0x18]
add esp, 0xc
jmp 0x1e40e2
cmp dword [esp + 0x28], 0
setne al
or al, byte [esp + 0x14]
test al, 1
je 0x1e4935
test byte [ebx + 0x6eb], 0x20
je 0x1e47f1
mov eax, dword [ebx + 0xd20]
test eax, eax
je 0x1e48ce
cmp dword [eax + 4], 0
jle 0x1e47f1
push 0x75d13c
push ebx
call fcn.001b4fd0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add esp, 8
jmp 0x1e47f1
cmp dword [esp + 0x28], 0
setne al
or al, byte [esp + 0x14]
test al, 1
je 0x1e493d
test byte [ebx + 0x6eb], 0x20
je 0x1e4818
mov eax, dword [ebx + 0xd20]
test eax, eax
je 0x1e491a
cmp dword [eax + 4], 0
jle 0x1e4818
push 0x75d191
push ebx
call fcn.001b4fd0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add esp, 8
jmp 0x1e4818
push edx
push 0x75d119
jmp 0x1e4946
push dword [esp + 0x1c]
push 0x75d16e
push ebx
call fcn.001b4f40
add esp, 0xc
mov eax, 0x4d
jmp 0x1e478d