Function at 0x448897
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x19c
mov eax, dword [0x13413f8]
xor eax, esp
mov dword [esp + 0x198], eax
push ebx
mov ebx, dword [esp + 0x1a8]
push ebp
mov ebp, dword [esp + 0x1a8]
push esi
push edi
push ebp
mov esi, dword [ebp + 8]
call fcn.0042c290
push ebx
push ebp
mov dword [esp + 0x44], eax
call fcn.0042c270
mov dword [esp + 0x24], 0
xor edi, edi
mov edx, dword [esi + 0x24]
add esp, 0xc
mov esi, dword [esp + 0x38]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], edx
cmp byte [esi + 0x39], 0
je 0x448841
cmp byte [edx + 0x48], 0
mov ecx, 0x20
mov edx, 8
cmovne ecx, edx
cmp byte [eax + 0x63], 0
je 0x44882b
or ecx, 0x1800
jmp 0x448846
cmp byte [eax + 0x65], 0
je 0x448839
or ecx, 0x1a00
jmp 0x448846
or ecx, 0x200
jmp 0x448846
mov ecx, 0x1808
cmp byte [esi + 0x3a], 0
mov dword [esp + 0x24], ecx
jne 0x448857
or ecx, 4
mov dword [esp + 0x24], ecx
cmp byte [eax + 0x67], 0
jne 0x44886e
and ecx, 0xffffffbf
or ecx, 0x10
mov dword [esp + 0x24], ecx
push 0x5583c8
jmp 0x448873
push 0x558400
push ebx
call fcn.004336c0
movzx eax, byte [esi + 0x38]
add esp, 8
cmp eax, 7
ja case.default.0x448890
movzx eax, byte [eax + 0x449328]
jmp dword [eax*4 + 0x449320]
push ebx
lea eax, [esp + 0x50]
push ebp
push eax
call fcn.0044a490
add esp, 0xc
test eax, eax
jne 0x449306
mov eax, dword [ebx + 0x3c0]
test eax, eax
jne 0x4488c4
cmp dword [ebx + 0x3d4], edi
je 0x448d56
mov ecx, dword [ebx + 0x3d4]
xor ebp, ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], edi
xor edi, edi
test ecx, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], edi
setne dl
mov dword [esp + 0x1c], edi
xor esi, esi
mov dword [esp + 0x2c], edi
mov byte [esp + 0x13], dl
test dl, dl
je 0x448904
mov eax, dword [ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x2c], eax
jmp 0x448968
push eax
call fcn.00445a60
mov esi, eax
add esp, 4
test esi, esi
je 0x448d98
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x38]
push eax
push esi
call fcn.00448620
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x448c53
mov eax, dword [ebx + 0x3c0]
cmp byte [eax], 0
je 0x448c32
push 0x553d54
push eax
call fcn.00445b40
mov ecx, eax
add esp, 8
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x448c32
mov ebp, dword [esp + 0x20]
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x4489bd
push 0x5584c8
push eax
call fcn.0043a000
add esp, 8
test eax, eax
jne 0x4489bd
mov al, byte [esp + 0x13]
test al, al
mov eax, 0x5584cc
jne 0x448997
mov eax, dword [ebx + 0x3c0]
push eax
push 0x5584dc
push ebx
call fcn.004335f0
add esp, 0xc
test esi, esi
je 0x4489b3
push esi
call fcn.004fa841
add esp, 4
mov eax, 0x3a
jmp 0x449306
mov al, byte [esp + 0x13]
cmp dword [esp + 0x28], edi
jne 0x4489cf
test al, al
je 0x448c57
xor ebp, ebp
test al, al
je 0x4489df
mov dword [esp + 0x20], 0x5584cc
jmp 0x4489e9
mov eax, dword [ebx + 0x3c0]
mov dword [esp + 0x20], eax
test esi, esi
je 0x4489f6
push esi
call fcn.004fa841
add esp, 4
mov esi, dword [esp + 0x28]
test esi, esi
je 0x448ae0
push 2
push 0
push esi
mov dword [esp + 0x34], edi
call fcn.005016d7
add esp, 0xc
test eax, eax
sete al
mov byte [esp + 0x14], al
test al, al
je 0x448a95
push esi
call fcn.00502427
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jns 0x448a91
mov byte [esp + 0x14], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
test eax, eax
je 0x448a54
push esi
push 1
push ecx
push eax
call fcn.005012d1
add esp, 0x10
cmp eax, 1
je 0x448a59
mov byte [esp + 0x14], 0
push esi
call fcn.004f651d
add esp, 4
cmp byte [esp + 0x14], 0
jne 0x448ae0
push dword [ebx + 0x3c0]
push 0x558518
push ebx
call fcn.004335f0
push dword [esp + 0x28]
call dword [0x1341004]
add esp, 0x10
mov eax, 0x3a
jmp 0x449306
mov al, byte [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
test al, al
je 0x448ad7
push 0
push 0
push esi
call fcn.005016d7
add esp, 0xc
test eax, eax
sete al
mov byte [esp + 0x14], al
test al, al
je 0x448a36
mov eax, dword [esp + 0x28]
inc eax
push eax
call dword [section..data]
add esp, 4
mov dword [esp + 0x1c], eax
jmp 0x448a3a
mov eax, dword [esp + 0x1c]
jmp 0x448a3e
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x410]
test eax, eax
je 0x448b0a
mov ebp, eax
lea ecx, [ebp + 1]
nop
mov al, byte [ebp]
inc ebp
test al, al
jne 0x448b00
sub ebp, ecx
lea eax, [ebp*2 + 2]
push eax
call dword [section..data]
mov esi, eax
add esp, 4
test esi, esi
je 0x448b8c
test ebp, ebp
je 0x448b68
lea ecx, [ebp + 1]
push ecx
push esi
push ebp
push dword [ebx + 0x410]
push 8
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jns 0x448b6a
xor eax, eax
mov word [esi], ax
push 3
push 2
push 0
push 0
push 6
call fcn.00467f20
add esp, 0x14
test al, al
lea eax, [esp + 0x40]
je 0x448b76
push 0x8000
jmp 0x448b78
xor eax, eax
cmp eax, ebp
jg 0x448b42
xor ecx, ecx
mov word [esi + eax*2], cx
jmp 0x448b47
push 0
push esi
push eax
call dword [sym.imp.CRYPT32.dll_PFXImportCertStore]
push esi
mov edi, eax
call dword [0x1341004]
add esp, 4
cmp byte [esp + 0x13], 0
jne 0x448ba0
push dword [esp + 0x1c]
call dword [0x1341004]
add esp, 4
test edi, edi
jne 0x448be6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x56
jne 0x448bc9
push dword [esp + 0x20]
push 0x558540
push ebx
call fcn.004335f0
add esp, 0xc
lea eax, [edi + 0x3a]
jmp 0x449306
push eax
push dword [esp + 0x24]
push 0x55857c
push ebx
call fcn.004335f0
add esp, 0x10
mov eax, 0x3a
jmp 0x449306
push 0
push 0
push 0
push 0
push 0x10001
push edi
call dword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x448d52
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [esp + 0x24]
push 0x5585c0
push ebx
call fcn.004335f0
add esp, 0x10
push 0
push edi
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
mov eax, 0x3a
jmp 0x449306
push dword [ebx + 0x3c0]
push 0x55848c
push ebx
call fcn.004335f0
push esi
call fcn.004fa841
add esp, 0x10
mov eax, ebp
jmp 0x449306
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
push ebp
or eax, 0x4000
push eax
push 0
push 0
push 0xa
call dword [sym.imp.CRYPT32.dll_CertOpenStore]
mov edi, eax
push ebp
test edi, edi
jne 0x448cc0
call fcn.00445ad0
add esp, 4
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
test edi, edi
mov ecx, 0x558608
cmovne ecx, edi
push ecx
push dword [esp + 0x38]
push 0x558618
push ebx
call fcn.004335f0
push ebp
call dword [0x1341004]
add esp, 0x18
test edi, edi
je 0x4489a6
push edi
call fcn.004fa841
add esp, 4
jmp 0x4489a6
call dword [0x1341004]
add esp, 4
mov dword [esp + 0x50], 0x14
lea eax, [esp + 0x90]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
push 0
push 0
push eax
lea eax, [esp + 0x9c]
push eax
push 4
push 0x28
push dword [esp + 0x58]
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryW]
test eax, eax
jne 0x448d1f
test esi, esi
je 0x448d0c
push esi
call fcn.004fa841
add esp, 4
push 0
push edi
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
mov eax, 0x3a
jmp 0x449306
push 0
lea eax, [esp + 0x54]
push eax
push 0x10000
push 0
push 0x10001
push edi
call dword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
mov dword [esp + 0x18], eax
test esi, esi
je 0x448d4e
push esi
call fcn.004fa841
mov eax, dword [esp + 0x1c]
add esp, 4
test eax, eax
je 0x448d0c
mov esi, dword [esp + 0x38]
push 0x20
push 1
call dword [0x1341010]
mov ebp, dword [esp + 0x50]
add esp, 8
mov dword [ebp], eax
test eax, eax
jne 0x448da2
push 0x558658
push ebx
call fcn.004335f0
mov eax, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x448d8b
push eax
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
test edi, edi
je 0x448d98
push 0
push edi
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
mov eax, 0x1b
jmp 0x449306
mov dword [eax + 0x18], 1
mov eax, dword [ebp]
mov dword [eax + 0x14], edi
cmp dword [esi + 0x10], 0
jne 0x4491a3
push 3
push 2
push 0x4563
push 0
push 0xa
call fcn.00467f20
add esp, 0x14
test al, al
je 0x4491a3
push 0x2c
lea eax, [esp + 0x5c]
push 0
push eax
call fcn.004f3400
push 0x70
lea eax, [esp + 0xb8]
mov dword [esp + 0xa0], 0
xorps xmm0, xmm0
mov dword [esp + 0xb4], 0
push 0
push eax
movups xmmword [esp + 0xac], xmm0
call fcn.004f3400
mov edi, dword [esi + 0x14]
xor eax, eax
add esp, 0x18
mov word [esp + 0x38], ax
xor edx, edx
mov dword [esp + 0x3a], eax
mov word [esp + 0x3e], ax
mov word [esp + 0x30], ax
mov dword [esp + 0x32], eax
mov word [esp + 0x36], ax
test edi, edi
je 0x44912e
mov dl, 1
mov dword [esp + 0x40], eax
mov byte [esp + 0x16], 1
mov byte [esp + 0x15], 1
mov byte [esp + 0x17], 1
mov byte [esp + 0x13], 1
mov byte [esp + 0x14], dl
cmp byte [edi], 0
je 0x448fa5
cmp eax, 5
jge 0x448fa5
push 0x3a
push edi
call fcn.004f3560
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x448e8b
mov esi, ebp
sub esi, edi
jmp 0x448e99
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x448e90
sub esi, ecx
cmp byte [esp + 0x16], 0
je 0x448ec2
push esi
push edi
push 0x55867c
call fcn.004485a0
add esp, 0xc
test al, al
je 0x448ec2
mov dl, byte [esp + 0x14]
xor ch, ch
mov byte [esp + 0x16], ch
jmp 0x448f67
mov al, byte [esp + 0x15]
test al, al
je 0x448ef0
push esi
push edi
push 0x558694
call fcn.004485a0
add esp, 0xc
test al, al
je 0x448ef0
mov dl, byte [esp + 0x14]
xor dh, dh
mov ch, byte [esp + 0x16]
mov byte [esp + 0x15], dh
jmp 0x448f6b
cmp byte [esp + 0x17], 0
je 0x448f15
push esi
push edi
push 0x5586ac
call fcn.004485a0
add esp, 0xc
test al, al
je 0x448f15
mov dl, byte [esp + 0x14]
mov byte [esp + 0x17], 0
jmp 0x448f63
cmp byte [esp + 0x13], 0
je 0x448f43
push esi
push edi
push 0x5586cc
call fcn.004485a0
add esp, 0xc
test al, al
je 0x448f43
mov dl, byte [esp + 0x14]
xor cl, cl
mov ch, byte [esp + 0x16]
mov dh, byte [esp + 0x15]
mov byte [esp + 0x13], cl
jmp 0x448f6f
cmp byte [esp + 0x14], 0
je 0x448f8b
push esi
push edi
push 0x5586e8
call fcn.004485a0
add esp, 0xc
test al, al
je 0x448f8b
xor dl, dl
mov byte [esp + 0x14], dl
mov ch, byte [esp + 0x16]
mov dh, byte [esp + 0x15]
mov cl, byte [esp + 0x13]
mov edi, ebp
test ebp, ebp
je 0x448f78
lea edi, [ebp + 1]
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
test edi, edi
jne 0x448e62
jmp 0x448fb1
push edi
push esi
push 0x558700
push ebx
call fcn.004335f0
add esp, 0x10
mov eax, 0x3b
jmp 0x449306
mov dh, byte [esp + 0x15]
mov ch, byte [esp + 0x16]
mov cl, byte [esp + 0x13]
test ch, ch
je 0x448fdd
test dh, dh
je 0x448fdd
cmp byte [esp + 0x17], 0
je 0x448fdd
test cl, cl
je 0x448fe1
test dl, dl
je 0x448fdd
push 0x558728
push ebx
call fcn.004335f0
mov eax, 0x3b
jmp 0x449303
test cl, cl
jne 0x448fe5
test dl, dl
je 0x449058
mov dword [esp + 0x38], 0x200020
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], 0x558760
mov dword [esp + 0xa8], 2
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], 1
mov dword [esp + 0xac], 0x80008
mov dword [esp + 0xb0], 0x558780
cmp cl, dl
je 0x449051
test cl, cl
je 0x449046
mov dword [esp + 0xbc], 0x80
mov edx, 1
jmp 0x44905a
mov dword [esp + 0xc0], 0x40
mov edx, 1
jmp 0x44905a
xor edx, edx
mov al, byte [esp + 0x15]
test ch, ch
jne 0x44906a
test al, al
je 0x4490f8
cmp ch, al
mov dword [esp + 0x30], 0x200020
mov dword [esp + 0x34], 0x558788
lea ecx, [edx*8]
je 0x4490bb
sub ecx, edx
mov eax, 0x5587a8
shl ecx, 2
mov esi, 0x5587b8
cmp byte [esp + 0x16], 0
cmove eax, esi
mov dword [esp + ecx + 0xa8], 3
mov dword [esp + ecx + 0xac], 0x40004
mov dword [esp + ecx + 0xb0], eax
jmp 0x4490e1
sub ecx, edx
shl ecx, 2
mov dword [esp + ecx + 0xa8], 2
mov dword [esp + ecx + 0xac], 0x80008
mov dword [esp + ecx + 0xb0], 0x558780
lea eax, [esp + 0x30]
mov dword [esp + ecx + 0xb4], 1
mov dword [esp + ecx + 0xb8], eax
inc edx
cmp byte [esp + 0x17], 0
mov ebp, dword [esp + 0x48]
je 0x44912e
lea eax, [edx*8]
sub eax, edx
inc edx
mov dword [esp + eax*4 + 0xa8], 2
mov dword [esp + eax*4 + 0xac], 0x240024
mov dword [esp + eax*4 + 0xb0], 0x5587c8
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0xa8]
mov dword [esp + 0xa0], eax
or ecx, 0x400000
cmp dword [esp + 0x18], 0
lea eax, [esp + 0x90]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
not eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x7c], 1
mov dword [esp + 0x58], 5
mov dword [esp + 0x78], ecx
mov dword [esp + 0x98], eax
je 0x449193
lea eax, [esp + 0x18]
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], eax
mov ecx, dword [ebp]
lea eax, [ecx + 8]
push eax
lea eax, [esp + 0x5c]
jmp 0x449267
mov esi, dword [esi + 0x10]
lea eax, [esp + 0x5c]
push 0x34
push 0
push eax
call fcn.004f3400
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x58], 4
mov dword [esp + 0x88], ecx
mov dword [esp + 0x78], eax
test esi, esi
je 0x449238
test eax, 0x2000
je 0x4491eb
push 0x558850
push ebx
call fcn.004336c0
add esp, 8
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x14], 0
je 0x44920a
push 0x5588e0
push ebx
call fcn.004335f0
mov eax, 0x3b
jmp 0x449303
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x5c]
push esi
push eax
call fcn.0044a560
mov esi, eax
add esp, 0xc
test esi, esi
je 0x449245
push 0x558960
push ebx
call fcn.004335f0
mov eax, esi
jmp 0x449303
or ecx, 0x400000
mov dword [esp + 0x88], ecx
cmp dword [esp + 0x18], 0
je 0x44925c
lea eax, [esp + 0x18]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], eax
mov ecx, dword [ebp]
lea eax, [ecx + 8]
push eax
lea eax, [esp + 0x5c]
push ecx
push 0
push 0
push eax
mov eax, dword [0x1342df4]
push 0
push 2
push 0x5587f0
mov eax, dword [eax + 0xc]
push 0
call eax
mov esi, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x449293
push eax
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
test esi, esi
je 0x4492dd
push 0x100
lea eax, [esp + 0xac]
push eax
push esi
call fcn.0041d100
push eax
push 0x558990
push ebx
call fcn.004335f0
push dword [ebp]
call dword [0x1341004]
xor eax, eax
mov dword [ebp], 0
add esp, 0x1c
cmp esi, 0x80090300
setne al
lea eax, [eax*8 + 0x1b]
jmp 0x449306
xor eax, eax
jmp 0x449306
push 0x558438
push ebx
call fcn.004335f0
mov eax, 4
jmp 0x449303
push 0x558454
push ebx
call fcn.004335f0
mov eax, 0x23
add esp, 8
mov ecx, dword [esp + 0x1a8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00472312
add esp, 0x19c
ret