Function at 0x43f00d
Capabilities:
Get remote cert context via schannel
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa4
mov ebp, edx
mov dword [esp + 0x10], ecx
lea eax, [edx + 0x54]
mov dword [esp + 0x80], eax
lea eax, [edx + 0x68]
mov dword [esp + 0x64], eax
lea eax, [edx + 0x5c]
mov dword [esp + 0x9c], eax
lea eax, [edx + 4]
mov dword [esp + 0x84], eax
lea eax, [edx + 0x40]
mov dword [esp + 0x8c], eax
lea edi, [esp + 0x3c]
mov dword [esp + 0x14], edx
movzx eax, byte [ebp + 0x50]
test eax, eax
jne 0x43f9a7
mov bh, byte [ebp + 0x51]
mov al, byte [ebp + 0x52]
mov byte [esp + 0x68], al
mov al, byte [ebp + 0x53]
mov byte [esp + 4], al
mov bl, byte [ebp + 0x54]
mov ecx, edi
mov edx, ebp
call fcn.0043fed4
cmp byte [esp + 0x3c], 4
jne 0x43f08a
mov eax, dword [esp + 0x40]
jmp 0x43f09b
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
cmp cl, 4
jne 0x43f9de
test eax, eax
je 0x43f0ab
cmp byte [ebp + 0x50], 0
jne 0x43f0af
mov byte [ebp + 0x51], 1
jmp 0x43f0af
test bh, bh
je 0x43f0c6
cmp dword [ebp + 0xa4], 0
je 0x43fb70
cmp byte [ebp + 0x50], 0
jne 0x43f0c6
mov byte [ebp + 0x51], 0
or bl, byte [esp + 4]
mov dword [esp + 8], esi
jne 0x43f0dd
cmp byte [ebp + 0xb2], 0
je 0x43f4ee
cmp byte [esp + 0x68], 0
je 0x43f5de
cmp dword [ebp + 0xa8], 0
je 0x43f120
mov ecx, edi
mov edx, ebp
call 0x43fb84
cmp byte [esp + 0x3c], 4
jne 0x43f107
mov eax, dword [esp + 0x40]
jmp 0x43f118
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
cmp cl, 4
jne 0x43f9de
test eax, eax
je 0x43f9ea
mov ebx, dword [ebp + 0x20]
mov al, byte [0x530b2c]
xor ecx, ecx
mov edx, 0x18
call fcn.0049cbc0
test eax, eax
je 0x43fb61
mov edx, dword [ebp + 0x30]
cmp edx, ebx
jb 0x43fb55
mov esi, eax
mov eax, dword [ebp + 0x2c]
mov dword [esi], ebx
mov ebx, 2
mov dword [esi + 4], ebx
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ebx
cmp dword [ebp + 0x84], 0x80000000
jne 0x43f186
mov dword [esp + 4], 0
jmp 0x43f1f7
mov edx, dword [ebp + 0x88]
mov ecx, edi
push dword [ebp + 0x8c]
call fcn.0048ddd8
add esp, 4
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x44]
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 8], edi
je 0x43f1eb
mov eax, dword [esp + 0x40]
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x30]
mov edx, 2
call fcn.0048d7b4
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
lea eax, [ebx + ebx*2]
mov ecx, dword [esp + 0x68]
mov dword [esi + eax*4], ecx
mov dword [esi + eax*4 + 4], 0x12
mov dword [esi + eax*4 + 8], edi
inc ebx
mov dword [esp + 0x38], ebx
jmp 0x43f1f3
mov dword [esp + 4], 0
lea edi, [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
movaps xmm0, xmmword [0x4d0750]
movups xmmword [esp + 0x3c], xmm0
mov dword [esp + 0x4c], 0x11
lea eax, [esp + 0x40]
xorps xmm0, xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], edi
xor eax, eax
mov dword [esp + 0x90], eax
cmp byte [ebp + 0xb2], 0
je 0x43f29c
cmp byte [ebp + 0xb3], 0
mov eax, 0
mov edi, dword [esp + 0x64]
cmove eax, edi
mov ecx, dword [ebp + 0x90]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
xor ecx, ecx
push ecx
xor edx, edx
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x20]
push ecx
push edi
push edx
push 0x1011c
lea ecx, [esp + 0x84]
push ecx
push eax
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.secur32.dll_AcceptSecurityContext]
jmp 0x43f2ff
xor ecx, ecx
cmp byte [ebp + 0xb0], 0
mov eax, 0
je 0x43f2af
mov eax, dword [ebp + 0x7c]
cmp dword [ebp + 0x78], 0x80000000
cmove eax, ecx
mov edx, dword [ebp + 0x90]
mov edi, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edx
push ecx
lea edx, [esp + 0x94]
push edx
lea edx, [esp + 0x20]
push edx
push ecx
push ecx
lea edx, [esp + 0x80]
push edx
push ecx
push ecx
push 0x9819c
push eax
push dword [esp + 0x8c]
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.secur32.dll_InitializeSecurityContextW]
mov ebp, eax
mov edi, 0x14
mov eax, dword [esp + edi + 0x3c]
test eax, eax
je 0x43f315
push eax
call dword [sym.imp.secur32.dll_FreeContextBuffer]
add edi, 0xc
cmp edi, 0x2c
jne 0x43f306
cmp ebp, 0x80090318
je 0x43f379
test ebp, ebp
je 0x43f35e
cmp ebp, 0x90312
jne 0x43fa1e
mov ebp, dword [esp + 0x14]
mov byte [ebp + 0xb3], 0
cmp ebx, 1
jbe 0x43fb28
cmp dword [esi + 0x10], 5
jne 0x43f45d
mov edx, dword [ebp + 0x20]
sub edx, dword [esi + 0xc]
jmp 0x43f460
cmp ebx, 1
jbe 0x43fb37
cmp dword [esi + 0x10], 5
jne 0x43f3a7
mov ebp, dword [esp + 0x14]
mov edx, dword [ebp + 0x20]
sub edx, dword [esi + 0xc]
jmp 0x43f3ae
cmp ebx, 1
lea edi, [esp + 0x3c]
jbe 0x43fb46
cmp dword [esi + 0x10], 4
mov eax, 1
jne 0x43f394
mov eax, dword [esi + 0xc]
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0xa8], eax
mov esi, dword [esp + 8]
jmp 0x43f457
mov ebp, dword [esp + 0x14]
mov edx, dword [ebp + 0x20]
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x44]
test esi, esi
je 0x43f3c8
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa0], eax
mov ecx, ebp
call 0x43fe58
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x24]
xor edx, edx
mov edi, eax
or edi, ecx
sete dl
mov dword [ebp + 0xa8], edx
test esi, esi
cmovne ebx, esi
je 0x43f41b
mov esi, dword [esp + 0xa0]
test esi, esi
mov edx, ebx
mov eax, str._rustc_a4472498d7e88041f6206faf4503eb1f246fd427librarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_store
cmove edx, eax
mov ecx, dword [esp + 0x8c]
push esi
call fcn.0040fc21
add esp, 4
push ebx
call dword [sym.imp.secur32.dll_FreeContextBuffer]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x88], ebx
or eax, ecx
mov esi, dword [esp + 8]
lea edi, [esp + 0x3c]
je 0x43f44d
lea ecx, [esp + 0x28]
mov edx, ebp
call 0x43fcdb
cmp byte [esp + 0x28], 4
je 0x43f44d
mov ebx, dword [esp + 0x28]
cmp bl, 4
jne 0x43fa2a
cmp byte [ebp + 0x50], 0
jne 0x43f457
mov byte [ebp + 0x52], 0
mov ebx, dword [esp + 4]
jmp 0x43f4af
mov edx, dword [ebp + 0x20]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov ecx, ebp
call 0x43fe58
mov eax, dword [ebp + 0x20]
xor ecx, ecx
or eax, dword [ebp + 0x24]
sete cl
mov dword [ebp + 0xa8], ecx
test edi, edi
mov edx, esi
mov eax, str._rustc_a4472498d7e88041f6206faf4503eb1f246fd427librarycore_src_sync_atomic.rsthere_is_no_such_thing_as_an_acquire_store
cmove edx, eax
mov ecx, dword [esp + 0x8c]
push edi
call fcn.0040fc21
add esp, 4
push esi
call dword [sym.imp.secur32.dll_FreeContextBuffer]
mov esi, dword [esp + 8]
lea edi, [esp + 0x3c]
test ebx, ebx
je 0x43f4cc
mov eax, esi
cmp ebx, 9
jb 0x43f4bd
mov eax, dword [esi - 4]
push eax
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x30], 0
je 0x43f054
push dword [esp + 0x34]
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x43f054
mov dword [esp + 0x3c], 0
push edi
push 0x53
push dword [esp + 0x6c]
call dword [sym.imp.secur32.dll_QueryContextAttributesW]
test eax, eax
je 0x43f522
mov ebx, eax
cmp byte [esp + 0x68], 0
je 0x43fa97
xor ecx, ecx
mov edx, ebx
call fcn.0043ffb9
jmp 0x43f0e8
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], eax
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43f66e
push eax
call dword [sym.imp.crypt32.dll_CertDuplicateStore]
mov esi, eax
cmp dword [ebp], 0
je 0x43f5d0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x84]
mov dword [esp + 0x44], eax
mov ecx, edi
call fcn.0048db08
test eax, eax
je 0x43f5bb
mov ebx, edx
lea ecx, [esp + 0x18]
mov edx, esi
push ebx
call fcn.0048daca
add esp, 4
cmp byte [esp + 0x18], 4
jne 0x43f58f
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp]
and eax, 0xffffff00
or eax, 4
jmp 0x43f597
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov dword [esp], eax
cmp al, 4
jne 0x43f91b
push ebp
mov ebp, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
call ebp
push ebx
call ebp
mov ecx, edi
call fcn.0048db08
mov ebx, edx
test eax, eax
jne 0x43f568
cmp dword [esp + 0x3c], 0
je 0x43f5cc
push dword [esp + 0x40]
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov ebp, dword [esp + 0x14]
push 0
push esi
call dword [sym.imp.crypt32.dll_CertCloseStore]
jmp 0x43f678
mov al, 2
cmp byte [esp + 4], 0
jne 0x43f63a
xorps xmm0, xmm0
movups xmmword [esp + 0x3c], xmm0
mov dword [esp + 0x4c], 0
push edi
push 4
push dword [esp + 0x6c]
call dword [sym.imp.secur32.dll_QueryContextAttributesW]
test eax, eax
jne 0x43fb15
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x40]
movsd xmm0, qword [eax + 4]
movsd qword [esp + 0x18], xmm0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
mov al, 1
mov byte [ebp + 0x50], al
mov eax, dword [esp + 0x98]
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x94]
mov dword [ebp + 0x58], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 8], eax
movsd xmm0, qword [esp + 0x18]
movsd qword [ecx], xmm0
jmp 0x43f054
mov esi, dword [ebp]
test esi, esi
je 0x43f678
mov esi, dword [ebp + 4]
mov dword [esp + 0x3c], 0x10
mov dword [esp + 0x40], 1
mov dword [esp + 0x18], str.1.3.6.1.5.5.7.3.1
mov dword [esp + 0x1c], str.1.3.6.1.4.1.311.10.3.3
mov dword [esp + 0x20], str.2.16.840.1.113730.4.1
mov dword [esp + 0x44], 3
lea eax, [esp + 0x18]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x6c]
push ecx
push eax
push 0xc0000001
push edi
push esi
push eax
push dword [esp + 0x78]
push eax
call dword [sym.imp.crypt32.dll_CertGetCertificateChain]
test eax, eax
je 0x43faa5
mov ebx, dword [esp + 0x6c]
cmp dword [ebp], 0
mov dword [esp + 0xc], ebx
je 0x43f7c5
lea ecx, [esp + 0x18]
mov edx, ebx
call fcn.0048d856
cmp dword [esp + 0x18], 0
je 0x43f7c5
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
lea eax, [esp + 0x30]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 0
mov esi, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
lea ecx, [esp + 0x6c]
call fcn.0048d8c9
cmp eax, 1
jne 0x43f7cc
mov ebx, edx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], 0
mov ecx, edi
call fcn.0048db08
cmp eax, 1
jne 0x43f797
mov ebp, edx
mov eax, dword [ebp + 8]
cmp eax, dword [ebx + 8]
jne 0x43f786
push eax
push dword [ebx + 4]
push dword [ebp + 4]
call fcn.004b6b8a
add esp, 0xc
mov esi, eax
push ebp
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
test esi, esi
mov esi, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
jne 0x43f789
jmp 0x43f7be
push ebp
call esi
mov ecx, edi
call fcn.0048db08
mov ebp, edx
cmp eax, 1
je 0x43f75a
mov dword [esp], 0
cmp dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x14]
je 0x43f7af
push dword [esp + 0x40]
call esi
push ebx
call esi
cmp byte [esp], 0
je 0x43f725
jmp 0x43f7d3
mov al, 1
mov dword [esp], eax
jmp 0x43f79e
mov esi, 0xf00
jmp 0x43f7e6
mov esi, 0xf00
jmp 0x43f7d8
mov esi, 0xf10
push dword [esp + 0x34]
call dword [sym.imp.crypt32.dll_CertFreeCertificateChain]
mov ebx, dword [esp + 0xc]
movaps xmm0, xmmword [0x4d0740]
movups xmmword [esp + 0x6c], xmm0
cmp dword [ebp + 0x78], 0x80000000
je 0x43f80b
cmp byte [ebp + 0xb1], 0
jne 0x43f80b
mov eax, dword [ebp + 0x7c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x30], 0xc
mov dword [esp + 0x34], esi
lea eax, [esp + 0x6c]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x40]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [esp + 0x3c], 0x14
push edi
lea eax, [esp + 0x34]
push eax
push ebx
push 4
call dword [sym.imp.crypt32.dll_CertVerifyCertificateChainPolicy]
test eax, eax
je 0x43f8df
mov esi, dword [esp + 0x40]
test esi, esi
mov ebx, dword [esp + 0x7c]
cmovne ebx, esi
sete al
shl al, 2
mov ecx, dword [ebp + 0x70]
test ecx, ecx
mov dword [esp + 0x7c], ebx
je 0x43f8f0
mov dword [esp], eax
mov eax, dword [ebp + 0x74]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
add ecx, edx
add ecx, 8
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edi
lea edx, [esp + 0x18]
push edx
push ecx
lea ecx, [esp + 0x30]
push ecx
call dword [eax + 0x14]
add esp, 0xc
test esi, esi
je 0x43f8ba
movzx ecx, byte [esp]
mov edx, dword [esp + 0x7c]
call fcn.0043d9ff
mov eax, dword [esp + 0x28]
cmp al, 4
mov esi, dword [esp + 8]
jne 0x43fac1
lea edi, [esp + 0x3c]
push dword [esp + 0x60]
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov cl, 1
jmp 0x43f96a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [esp], 0
jmp 0x43f8fb
test esi, esi
je 0x43f994
mov dword [esp], eax
mov esi, dword [esp + 8]
mov ebp, ebx
shr ebp, 0x10
shl ebx, 0x10
push dword [esp + 0xc]
call dword [sym.imp.crypt32.dll_CertFreeCertificateChain]
mov dword [esp + 0xc], 0
jmp 0x43f951
push ebx
mov ebx, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
call ebx
cmp dword [esp + 0x3c], 0
je 0x43f931
push dword [esp + 0x40]
call ebx
mov ebx, dword [esp]
shrd ebx, ebp, 0x10
shr ebp, 0x10
push 0
push esi
call dword [sym.imp.crypt32.dll_CertCloseStore]
mov eax, dword [esp]
mov al, ah
mov dword [esp + 0xc], eax
mov esi, dword [esp + 8]
push dword [esp + 0x60]
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov eax, dword [esp]
cmp al, 4
mov ecx, dword [esp + 0xc]
jne 0x43fae6
test cl, cl
je 0x43f98b
mov ebp, dword [esp + 0x14]
cmp byte [ebp + 0x50], 0
jne 0x43f0dd
mov eax, dword [esp + 0x80]
mov byte [eax], 1
jmp 0x43f0dd
mov ebp, dword [esp + 0x14]
jmp 0x43f0dd
push dword [esp + 0xc]
call dword [sym.imp.crypt32.dll_CertFreeCertificateChain]
mov esi, dword [esp + 8]
jmp 0x43f8ce
cmp eax, 1
jne 0x43f9cf
mov ecx, dword [esp + 0x10]
mov dword [ecx], 1
mov eax, dword [esp + 0x80]
movups xmm0, xmmword [eax]
movups xmmword [ecx + 4], xmm0
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x14], eax
jmp 0x43fb0a
mov eax, dword [esp + 0x10]
mov dword [eax], 0
jmp 0x43fb0a
mov edx, dword [esp + 0x10]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x43fa13
lea esi, [esp + 0x3c]
mov ecx, esi
mov edx, 0x25
push 0x1f
push str.unexpected_EOF_during_handshakeassertion_failed:_size___nread
call fcn.0048d696
add esp, 8
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x10]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 2
jmp 0x43fb0a
mov esi, ebp
shr esi, 8
shl ebp, 0x18
xor ebx, ebx
jmp 0x43fa37
mov esi, dword [esp + 0x2c]
mov ebp, ebx
shrd ebp, esi, 8
shr esi, 8
mov eax, dword [esp + 4]
test eax, eax
je 0x43fa60
cmp eax, 9
jae 0x43fa4a
mov eax, dword [esp + 8]
jmp 0x43fa51
mov eax, dword [esp + 8]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x30], 0
je 0x43fa79
push dword [esp + 0x34]
push 0
push dword [0x530ac8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
shld esi, ebp, 8
shl ebp, 8
movzx eax, bl
or eax, ebp
mov ecx, dword [esp + 0x10]
mov dword [ecx + 8], esi
mov dword [ecx + 4], eax
mov dword [ecx], 2
jmp 0x43fb0a
mov ebp, ebx
shr ebp, 0x10
shl ebx, 0x10
xor ecx, ecx
xor eax, eax
jmp 0x43fae6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ebp, eax
shr ebp, 0x10
shl ebx, 0x10
mov dword [esp + 0xc], 0
xor esi, esi
jmp 0x43fad6
mov ebp, dword [esp + 0x2c]
mov ebx, eax
shrd ebx, ebp, 0x10
shr ebp, 0x10
mov esi, eax
mov al, ah
mov dword [esp + 0xc], eax
push dword [esp + 0x60]
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov eax, esi
mov ecx, dword [esp + 0xc]
shld ebp, ebx, 0x10
shl ebx, 0x10
movzx eax, al
or eax, ebx
movzx ecx, cl
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x10]
mov dword [eax + 8], ebp
mov dword [eax + 4], ecx
mov dword [eax], 2
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x10]
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
jmp 0x43fa8f
xor ecx, ecx
inc ecx
mov edx, ebx
push 0x4f51c8
call fcn.004cb900
xor ecx, ecx
inc ecx
mov edx, ebx
push 0x4f51b8
call fcn.004cb900
xor ecx, ecx
inc ecx
mov edx, ebx
push 0x4f51d8
call fcn.004cb900
mov ecx, ebx
push 0x4f51a8
call fcn.004cb960
mov ecx, 4
mov edx, 0x18
call fcn.004cb610
mov ecx, str.assertion_failed:__self.context.is_null__
mov edx, 0x29
push 0x4f45ac
call fcn.004cb970
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov edi, edx
mov dword [esp + 4], ecx
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x43fc8f
lea eax, [edi + 0x28]
mov dword [esp + 8], eax
lea eax, [edi + 0x94]
mov dword [esp + 0xc], eax
mov ebx, dword [edi + 0x20]
mov eax, dword [edi + 0x30]
mov dword [esp], eax
xor esi, esi
lea eax, [ebx + ebx]
cmp eax, edx
cmova edx, eax
cmp edx, 0x401
mov eax, 0x400
cmovb edx, eax
cmp dword [esp], edx
jae 0x43fbe5
mov ecx, dword [esp + 8]
call fcn.00402229
mov eax, dword [edi + 0x30]
mov dword [esp], eax
mov eax, dword [esp]
sub eax, ebx
jb 0x43fcc2
mov ecx, dword [edi + 0x2c]
add ecx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x43fcae
lea ecx, [esp + 0x10]
mov edx, dword [esp + 0xc]
lea ebp, [esp + 0x18]
push ebp
push eax
call fcn.004a3551
add esp, 8
cmp byte [esp + 0x10], 5
mov ecx, dword [esp + 0x14]
mov eax, 0
cmove ecx, eax
mov eax, dword [esp + 0x10]
mov edx, 0xd01
cmove eax, edx
cmp al, 4
je 0x43fc56
je 0x43fc56
cmp al, 4
je 0x43fc62
jmp 0x43fca3
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
ja 0x43fcd1
add ebx, ecx
xor ebp, ebp
mov dword [edi + 0x24], ebp
mov dword [edi + 0x20], ebx
mov eax, dword [edi + 0xa8]
mov edx, eax
sub edx, ecx
cmovb edx, ebp
mov dword [edi + 0xa8], edx
test ecx, ecx
je 0x43fc91
add esi, ecx
cmp eax, ecx
ja 0x43fbbb
jmp 0x43fc91
xor esi, esi
mov eax, dword [esp + 4]
mov dword [eax + 4], esi
mov byte [eax], 4
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x43fc9b
mov ecx, str.assertion_failed:__self.context.is_null__
mov edx, 0x29
push 0x4f45ac
call fcn.004cb970
mov ecx, ebx
mov edx, dword [esp]
push 0x4f5248
call fcn.004cb8f0
push 0x4f4d10
call fcn.004cb960
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov edi, edx
mov esi, ecx
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x30]
cmp edx, ecx
jb 0x43fe34
mov edx, dword [edi + 0x2c]
xor eax, eax
mov ebx, esp
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx], ecx
mov dword [ebx + 4], 1
mov dword [ebx + 8], edx
xorps xmm0, xmm0
movups xmmword [ebx + 0xc], xmm0
xorps xmm0, xmm0
movsd qword [ebx + 0x1c], xmm0
lea ecx, [esp + 0x30]
mov dword [ecx], eax
mov dword [ecx + 4], 4
mov dword [ecx + 8], ebx
lea edx, [edi + 0x68]
push eax
push eax
push ecx
push edx
call dword [sym.imp.secur32.dll_DecryptMessage]
cmp eax, 0x90316
jg 0x43fdc1
cmp eax, 0x80090318
je 0x43fe0a
test eax, eax
jne 0x43fdff
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0x30]
sub ecx, edx
mov ebx, ecx
mov dword [edi + 0x18], 0
add ebx, ebp
jb 0x43fe3e
cmp eax, ebx
jb 0x43fe4a
lea eax, [edi + 0x10]
add edx, ecx
mov ecx, eax
push ebp
call fcn.0040fc21
add esp, 4
xor eax, eax
mov dword [edi + 0xc], eax
mov dword [edi + 8], eax
cmp dword [esp + 0x28], 5
mov edx, dword [edi + 0x20]
jne 0x43fda5
mov eax, dword [esp + 0x24]
sub edx, eax
mov ecx, edi
call 0x43fe58
mov eax, dword [edi + 0x20]
xor ecx, ecx
or eax, dword [edi + 0x24]
sete cl
mov dword [edi + 0xa8], ecx
jmp 0x43fe27
cmp eax, 0x90317
je 0x43fe17
cmp eax, 0x90321
jne 0x43fdff
mov dword [edi + 0x50], 0x10000
mov byte [edi + 0x54], 0
xor eax, eax
cmp dword [esp + 0x28], 5
mov edx, dword [edi + 0x20]
jne 0x43fdea
mov eax, dword [esp + 0x24]
sub edx, eax
mov ecx, edi
call 0x43fe58
mov dword [edi + 0xa8], 0
jmp 0x43fe27
mov dword [esi + 4], eax
mov dword [esi], 0
jmp 0x43fe2c
cmp dword [esp + 0x10], 4
jne 0x43fe1e
mov eax, dword [esp + 0xc]
jmp 0x43fe21
mov word [esi], 0x104
jmp 0x43fe2c
xor eax, eax
inc eax
mov dword [edi + 0xa8], eax
mov word [esi], 4
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4f51e8
call fcn.004cb960
mov edx, ebx
push 0x4f51f8
call fcn.004cbbd0
mov ecx, ebx
mov edx, eax
push 0x4f51f8
call fcn.004cb960
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov edi, dword [ecx + 0x20]
sub edi, edx
jb 0x43feb2
mov esi, ecx
je 0x43fea0
mov eax, dword [esi + 0x30]
mov ebx, eax
sub ebx, edx
jb 0x43fec6
lea eax, [esi + 0x28]
mov dword [esp], eax
mov dword [esi + 0x30], 0
mov ebp, dword [esi + 0x2c]
lea eax, [edx + ebp]
lea ecx, [esp + 4]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], ebx
mov dword [ecx], ebp
mov dword [ecx + 4], eax
mov eax, dword [esp]
mov dword [ecx + 8], eax
call fcn.00426b2c
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], 0
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x4f5177
mov edx, 0x1f
push 0x4f5198
call fcn.004cb970
mov ecx, edx
mov edx, eax
push 0x52145c
call fcn.004cb960