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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb4
lea eax, [edx + 0x114]
mov edi, edx
mov dword [esp + 0xc], ecx
mov dword [esp], edx
mov dword [esp + 0x90], eax
lea eax, [edx + 8]
mov dword [esp + 0xb0], eax
lea eax, [edx + 0x128]
mov dword [esp + 0x64], eax
lea eax, [edx + 0x11c]
mov dword [esp + 0xa8], eax
lea eax, [edx + 4]
mov dword [esp + 0x94], eax
lea eax, [edx + 0x100]
mov dword [esp + 0x98], eax
movzx eax, byte [edi + 0x110]
test eax, eax
jne 0x45d3dd
mov cl, byte [edi + 0x113]
mov al, byte [edi + 0x112]
mov bh, byte [edi + 0x111]
mov bl, byte [edi + 0x114]
mov edx, edi
mov byte [esp + 0xb], cl
lea ecx, [esp + 0x38]
mov byte [esp + 4], al
call fcn.0045d638
cmp byte [esp + 0x38], 4
jne 0x45c96f
mov eax, dword [esp + 0x3c]
jmp 0x45c980
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
cmp cl, 4
jne 0x45d420
test eax, eax
je 0x45c996
cmp byte [edi + 0x110], 0
jne 0x45c99a
mov byte [edi + 0x111], 1
jmp 0x45c99a
test bh, bh
je 0x45c9cd
mov edx, dword [esp + 0xb0]
lea ecx, [esp + 0x38]
call fcn.0045d744
cmp byte [esp + 0x38], 4
je 0x45c9bd
mov eax, dword [esp + 0x38]
cmp al, 4
jne 0x45d452
cmp byte [edi + 0x110], 0
jne 0x45c9cd
mov byte [edi + 0x111], 0
or bl, byte [esp + 0xb]
mov dword [esp + 0x10], esi
je 0x45c9de
xor ebx, ebx
jmp 0x45cef1
cmp byte [edi + 0x15e], 0
mov ebx, 0
jne 0x45cef1
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0
push eax
push 0x53
push dword [esp + 0x6c]
call dword [sym.imp.secur32.dll_QueryContextAttributesW]
test eax, eax
je 0x45ca36
cmp byte [esp + 4], 0
mov ecx, eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
je 0x45ca43
lea ecx, [esp + 0x38]
call fcn.0045c754
xor eax, eax
mov dl, 4
mov bh, al
jmp 0x45cec8
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x38], 4
mov dword [esp + 0x3c], ecx
mov ebx, dword [esp + 0x38]
cmp bl, 4
jne 0x45cade
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], ecx
test eax, eax
je 0x45caf6
push eax
call dword [sym.imp.crypt32.dll_CertDuplicateStore]
mov ecx, edi
mov edi, eax
mov ebx, 0
cmp dword [ecx], 0
je 0x45cb20
mov eax, dword [esp + 0x94]
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x38]
call fcn.00495f0e
test eax, eax
je 0x45cb09
mov esi, edx
lea ecx, [esp + 0x20]
mov edx, edi
push esi
call fcn.00495ed0
add esp, 4
cmp byte [esp + 0x20], 4
jne 0x45cabf
mov ebp, dword [esp + 0x24]
and ebx, 0xffffff00
or ebx, 4
jmp 0x45cac7
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
cmp bl, 4
jne 0x45cca7
push ebp
mov ebp, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
call ebp
push esi
call ebp
jmp 0x45ca8b
mov eax, ebx
mov edx, ebx
shrd eax, ecx, 0x10
shr ecx, 0x10
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
jmp 0x45cec8
mov edi, dword [edi]
mov ebx, 0
test edi, edi
je 0x45cb2d
mov eax, dword [esp]
mov edi, dword [eax + 4]
jmp 0x45cb2d
cmp dword [esp + 0x38], 0
mov esi, dword [esp + 0x10]
je 0x45cb1e
push dword [esp + 0x3c]
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
xor ebx, ebx
push 0
push edi
call dword [sym.imp.crypt32.dll_CertCloseStore]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x20]
mov dword [esp + 0x38], 0x10
mov dword [esp + 0x3c], 1
mov dword [esp + 0x40], 3
mov dword [esp + 0x20], str.1.3.6.1.5.5.7.3.1
mov dword [esp + 0x24], str.1.3.6.1.4.1.311.10.3.3
mov dword [esp + 0x28], str.2.16.840.1.113730.4.1
mov dword [esp + 0x80], ebx
mov dword [esp + 0x44], eax
lea eax, [esp + 0x80]
push eax
push ebx
push 0xc0000001
lea eax, [esp + 0x44]
push eax
push edi
push ebx
push ecx
push ebx
call dword [sym.imp.crypt32.dll_CertGetCertificateChain]
test eax, eax
je 0x45cc80
mov edi, dword [esp]
mov edx, dword [esp + 0x80]
cmp dword [edi], 0
mov dword [esp + 0x5c], edx
je 0x45cce9
lea ecx, [esp + 0x20]
call fcn.00496527
cmp dword [esp + 0x20], 0
je 0x45cd0c
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0
lea ecx, [esp + 0x80]
call fcn.0049659a
mov esi, edx
cmp eax, 1
jne 0x45ccf0
mov eax, dword [esp + 0x94]
mov edi, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x38]
call fcn.00495f0e
mov ebx, eax
cmp eax, 1
jne 0x45cc55
mov eax, dword [edx + 8]
mov ebp, edx
cmp eax, dword [esi + 8]
jne 0x45cc50
push eax
push dword [esi + 4]
push dword [ebp + 4]
call fcn.004e5584
add esp, 0xc
mov edi, eax
push ebp
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
test edi, edi
mov edi, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
jne 0x45cc12
jmp 0x45cc55
push ebp
call edi
jmp 0x45cc12
cmp dword [esp + 0x38], 0
je 0x45cc62
push dword [esp + 0x3c]
call edi
push esi
call edi
mov edi, dword [esp]
cmp ebx, 1
mov ebx, 0
jne 0x45cbe2
mov esi, 0xf10
jmp 0x45cd00
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
shl eax, 0x10
mov dword [esp + 0x60], 0
shr ecx, 0x10
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x30], ecx
mov bh, al
jmp 0x45ce8c
push esi
mov esi, dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
call esi
cmp dword [esp + 0x38], 0
je 0x45ccbd
push dword [esp + 0x3c]
call esi
mov eax, ebx
shrd eax, ebp, 0x10
shr ebp, 0x10
mov dword [esp + 0x34], eax
push 0
push edi
call dword [sym.imp.crypt32.dll_CertCloseStore]
mov edi, dword [esp]
mov esi, dword [esp + 0x10]
mov eax, ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x60], eax
jmp 0x45ceb9
mov esi, 0xf00
jmp 0x45cd15
test eax, eax
je 0x45ccfb
push esi
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov esi, 0xf00
push dword [esp + 0x6c]
call dword [sym.imp.crypt32.dll_CertFreeCertificateChain]
jmp 0x45cd11
mov esi, 0xf00
mov edx, dword [esp + 0x5c]
cmp dword [edi + 0x138], 0x80000000
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x80], 0x10
mov dword [esp + 0x84], 2
je 0x45cd5b
cmp byte [edi + 0x15d], 0
jne 0x45cd5b
mov eax, dword [edi + 0x13c]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x68], 0xc
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
lea eax, [esp + 0x3c]
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 8], ebx
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0x14
push eax
lea eax, [esp + 0x6c]
push eax
push edx
push 4
call dword [sym.imp.crypt32.dll_CertVerifyCertificateChainPolicy]
test eax, eax
je 0x45cdb6
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x45cddd
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], 0
jmp 0x45cde2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
shl eax, 0x10
mov dword [esp + 0x60], 0
shr ecx, 0x10
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x30], ecx
mov bh, al
jmp 0x45ceaa
mov byte [esp + 0x18], 4
mov ecx, dword [edi + 0x130]
test ecx, ecx
je 0x45ce4d
mov eax, dword [edi + 0x134]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x44]
mov edx, dword [eax + 8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], esi
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x28], edx
lea edx, [esp + 0x20]
mov dword [esp + 0x2c], edi
push edx
push ecx
lea ecx, [esp + 0x7c]
push ecx
call dword [eax + 0x14]
add esp, 0xc
test esi, esi
je 0x45ce3b
lea eax, [esp + 0x18]
push eax
call fcn.0041fdda
add esp, 4
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x10]
cmp bl, 4
jne 0x45ce73
mov edi, dword [esp]
jmp 0x45ce64
mov ebx, dword [esp + 0x18]
cmp bl, 4
jne 0x45ce91
push dword [esp + 0x5c]
call dword [sym.imp.crypt32.dll_CertFreeCertificateChain]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov bh, 1
jmp 0x45ced1
mov ecx, dword [esp + 0x78]
mov eax, ebx
mov dword [esp + 0x60], ebx
shrd eax, ecx, 0x10
shr ecx, 0x10
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov edi, dword [esp]
jmp 0x45ceb9
mov ecx, dword [esp + 0x1c]
mov eax, ebx
mov dword [esp + 0x60], ebx
shrd eax, ecx, 0x10
shr ecx, 0x10
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.crypt32.dll_CertFreeCertificateChain]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov edx, dword [esp + 0x60]
cmp dl, 4
jne 0x45d474
test bh, bh
je 0x45c9d7
cmp byte [edi + 0x110], 0
mov ebx, 0
jne 0x45cef1
mov eax, dword [esp + 0x90]
mov byte [eax], 1
cmp byte [esp + 4], 0
je 0x45d340
cmp dword [edi + 0x154], 0
je 0x45cf36
lea ecx, [esp + 0x38]
mov edx, edi
call fcn.0045d7a1
cmp byte [esp + 0x38], 4
jne 0x45cf1d
mov eax, dword [esp + 0x3c]
jmp 0x45cf2e
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
cmp cl, 4
jne 0x45d420
test eax, eax
je 0x45d42c
mov esi, dword [edi + 0xe0]
mov al, byte [0x538038]
mov ecx, 0x18
mov edx, 4
call fcn.00439850
test eax, eax
je 0x45d54b
mov edx, dword [edi + 0xf0]
cmp edx, esi
jb 0x45d55a
mov edx, dword [edi + 0xec]
mov ebp, eax
mov ecx, 2
mov dword [ebp], esi
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ecx
cmp dword [edi + 0x144], 0x80000000
jne 0x45cfa7
mov dword [esp + 0x68], 0
jmp 0x45d005
mov edx, dword [edi + 0x148]
lea ecx, [esp + 0x68]
push dword [edi + 0x14c]
call fcn.00495f45
add esp, 4
mov eax, dword [esp + 0x68]
test eax, eax
mov dword [esp + 4], eax
je 0x45d005
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
lea ecx, [esp + 0x74]
mov edx, 2
call fcn.0040fef7
mov edi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
lea eax, [edi + edi*2]
inc edi
mov dword [ebp + eax*4], esi
mov dword [ebp + eax*4 + 4], 0x12
mov dword [ebp + eax*4 + 8], ebx
xor ebx, ebx
mov dword [esp + 0x7c], edi
jmp 0x45d012
mov edi, 2
mov dword [esp + 4], 0
mov edx, dword [esp]
lea eax, [esp + 0x3c]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 2
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], 0x11
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x24], 3
mov dword [esp + 0x9c], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x18], ebx
lea eax, [esp + 0x38]
mov dword [esp + 0x28], eax
cmp byte [edx + 0x15e], 0
je 0x45d0cc
mov ecx, dword [edx + 0x150]
cmp byte [edx + 0x15f], 0
mov esi, dword [esp + 0x64]
mov eax, 0
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
cmove eax, esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
push ebx
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x28]
push ecx
push esi
push ebx
push 0x1011c
lea ecx, [esp + 0x98]
push ecx
push eax
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.secur32.dll_AcceptSecurityContext]
jmp 0x45d135
xor ecx, ecx
cmp byte [edx + 0x15c], 0
mov eax, 0
je 0x45d0e2
mov eax, dword [edx + 0x13c]
cmp dword [edx + 0x138], 0x80000000
mov edx, dword [edx + 0x150]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
cmove eax, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
push ecx
lea edx, [esp + 0xa0]
push edx
lea edx, [esp + 0x28]
push edx
push ecx
push ecx
lea edx, [esp + 0x94]
push edx
push ecx
push ecx
push 0x9819c
push eax
push dword [esp + 0x8c]
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.secur32.dll_InitializeSecurityContextW]
mov esi, eax
xor ebx, ebx
xor eax, eax
inc eax
lea eax, [eax + eax*2]
mov eax, dword [esp + eax*4 + 0x40]
test eax, eax
je 0x45d14e
push eax
call dword [sym.imp.secur32.dll_FreeContextBuffer]
test bl, 1
mov eax, 2
mov bl, 1
je 0x45d13c
cmp esi, 0x80090318
je 0x45d199
test esi, esi
je 0x45d1c6
cmp esi, 0x90312
jne 0x45d46b
mov eax, dword [esp]
cmp edi, 1
mov byte [eax + 0x15f], 0
jbe 0x45d51e
cmp dword [ebp + 0x10], 5
jne 0x45d1e3
mov ebx, dword [esp]
mov edx, dword [ebx + 0xe0]
sub edx, dword [ebp + 0xc]
jmp 0x45d1ec
cmp edi, 1
jbe 0x45d52d
cmp dword [ebp + 0x10], 4
mov eax, 1
jne 0x45d1b0
mov eax, dword [ebp + 0xc]
mov edi, dword [esp]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 4]
mov dword [edi + 0x154], eax
jmp 0x45d2ff
cmp edi, 1
jbe 0x45d53c
cmp dword [ebp + 0x10], 5
jne 0x45d244
mov edi, dword [esp]
mov edx, dword [edi + 0xe0]
sub edx, dword [ebp + 0xc]
jmp 0x45d24d
mov ebx, dword [esp]
mov edx, dword [ebx + 0xe0]
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov ecx, ebx
call fcn.0045d929
mov eax, dword [ebx + 0xe0]
xor ecx, ecx
mov edx, esi
or eax, dword [ebx + 0xe4]
mov eax, str.C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs0
sete cl
test edi, edi
mov dword [ebx + 0x154], ecx
mov ecx, dword [esp + 0x98]
cmove edx, eax
push edi
call fcn.004028f8
add esp, 4
push esi
call dword [sym.imp.secur32.dll_FreeContextBuffer]
mov esi, dword [esp + 0x10]
mov edi, ebx
jmp 0x45d2ff
mov edi, dword [esp]
mov edx, dword [edi + 0xe0]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 4]
test esi, esi
je 0x45d264
mov eax, dword [esp + 0x38]
mov dword [esp + 0xac], eax
mov ecx, edi
call fcn.0045d929
mov eax, dword [edi + 0xe0]
mov ecx, dword [edi + 0xe4]
mov ebx, dword [esp + 0x10]
xor edx, edx
mov edi, eax
or edi, ecx
mov edi, dword [esp]
sete dl
test esi, esi
cmovne ebx, esi
mov esi, ebx
mov dword [edi + 0x154], edx
je 0x45d2cc
mov ebx, dword [esp + 0xac]
mov ecx, dword [esp + 0x98]
mov eax, str.C:Usersigame.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs0
mov edx, esi
test ebx, ebx
cmove edx, eax
push ebx
call fcn.004028f8
add esp, 4
push esi
call dword [sym.imp.secur32.dll_FreeContextBuffer]
mov eax, dword [edi + 0xe0]
mov ecx, dword [edi + 0xe4]
or eax, ecx
je 0x45d2ef
lea ecx, [esp + 0x18]
mov edx, edi
call fcn.0045d9bb
cmp byte [esp + 0x18], 4
je 0x45d2ef
mov ebx, dword [esp + 0x18]
cmp bl, 4
jne 0x45d49e
cmp byte [edi + 0x110], 0
jne 0x45d2ff
mov byte [edi + 0x112], 0
test ebp, ebp
je 0x45d31e
mov eax, dword [esp + 0x70]
cmp ebp, 9
jb 0x45d30f
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x74], 0
je 0x45c928
push dword [esp + 0x78]
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x45c928
cmp byte [esp + 0xb], 0
mov al, 2
jne 0x45d3a0
xorps xmm0, xmm0
lea eax, [esp + 0x38]
mov dword [esp + 0x48], 0
movups xmmword [esp + 0x38], xmm0
push eax
push 4
push dword [esp + 0x6c]
call dword [sym.imp.secur32.dll_QueryContextAttributesW]
test eax, eax
jne 0x45d50e
mov eax, dword [esp + 0x38]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x3c]
movsd xmm0, qword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
mov al, 1
movsd qword [esp + 0x20], xmm0
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
mov byte [edi + 0x110], al
movsd xmm0, qword [esp + 0x20]
mov dword [edi + 0x114], edx
mov dword [edi + 0x118], ecx
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x28]
mov dword [ecx + 8], edx
movsd qword [ecx], xmm0
jmp 0x45c928
cmp eax, 1
jne 0x45d411
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + 0x10]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov dword [ecx + 0x14], eax
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm0
mov dword [ecx], 1
jmp 0x45d503
mov eax, dword [esp + 0xc]
mov dword [eax], 0
jmp 0x45d503
mov edx, dword [esp + 0xc]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x45d460
mov esi, dword [esp + 0xc]
mov edx, 0x25
lea ecx, [esi + 4]
push 0x1f
push str.unexpected_EOF_during_handshakeassertion_failed:_size___nread
call fcn.00497ea9
add esp, 8
mov dword [esi], 2
jmp 0x45d503
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov dword [edx], 2
jmp 0x45d503
mov ebp, esi
shl esi, 0x18
xor ebx, ebx
jmp 0x45d4a8
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov eax, edx
mov esi, dword [esp + 0xc]
movzx edi, bh
movzx eax, al
shl edi, 8
shld ebp, ecx, 0x10
shl ecx, 0x10
or eax, ecx
mov dword [esi + 8], ebp
or edi, eax
mov dword [esi + 4], edi
jmp 0x45d447
mov ebp, dword [esp + 0x1c]
mov esi, ebx
shrd esi, ebp, 8
shr ebp, 8
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x45d4ce
mov eax, dword [esp + 0x70]
cmp ecx, 9
jb 0x45d4bf
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 0x74], 0
je 0x45d4e7
push dword [esp + 0x78]
push 0
push dword [0x537fc8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esp + 0xc]
shld ebp, esi, 8
shl esi, 8
movzx eax, bl
or eax, esi
mov dword [ecx + 8], ebp
mov dword [ecx + 4], eax
mov dword [ecx], 2
add esp, 0xb4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
jmp 0x45d4fd
xor ecx, ecx
mov edx, edi
inc ecx
push 0x524934
call fcn.004e8970
xor ecx, ecx
mov edx, edi
inc ecx
push 0x524944
call fcn.004e8970
xor ecx, ecx
mov edx, edi
inc ecx
push 0x524924
call fcn.004e8970
mov ecx, 4
mov edx, 0x18
call fcn.004e8590
mov ecx, esi
push 0x524914
call fcn.004e89d0