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

Disassembly:
sub esp, 0x114
mov eax, dword [esp + 0x118]
push ebx
mov ebx, dword [esp + 0x120]
push ebp
mov ebp, dword [eax]
mov dword [esp + 0x10], ebp
cmp byte [ebp + 0x89c], 0
jne 0x4780f4
test ebx, ebx
je 0x4780f4
pop ebp
xor eax, eax
pop ebx
add esp, 0x114
ret
push dword [esp + 0x12c]
lea eax, [esp + 0x20]
push dword [esp + 0x12c]
push eax
call fcn.00479850
add esp, 0xc
test eax, eax
je 0x478121
pop ebp
mov eax, 0x3c
pop ebx
add esp, 0x114
ret
push esi
lea eax, [esp + 0xa0]
push edi
push eax
call fcn.00479b50
mov esi, eax
add esp, 4
test esi, esi
je case.0x4790b5.7
cmp byte [ebp + 0x89c], 0
je 0x478156
push esi
push str.Subject
push ebx
push ebp
call fcn.00444dc0
add esp, 0x10
test ebx, ebx
jne 0x47816a
push esi
push ebx
push str._2d_Subject:__s_n
push ebp
call fcn.0044a120
add esp, 0x10
push esi
call dword [0x7a90d8]
lea eax, [esp + 0x78]
push eax
call fcn.00479b50
mov esi, eax
add esp, 8
test esi, esi
je case.0x4790b5.7
cmp byte [ebp + 0x89c], 0
je 0x4781a1
push esi
push str.Issuer
push ebx
push ebp
call fcn.00444dc0
add esp, 0x10
test ebx, ebx
jne 0x4781b4
push esi
push str.___Issuer:__s_n
push ebp
call fcn.0044a120
add esp, 0xc
push esi
call dword [0x7a90d8]
mov ecx, dword [esp + 0x3c]
add esp, 4
mov edx, dword [esp + 0x3c]
xor esi, esi
cmp ecx, edx
jae 0x4781dd
nop dword [eax]
movzx eax, byte [ecx]
inc ecx
shl esi, 8
or esi, eax
cmp ecx, edx
jb 0x4781d0
cmp byte [ebp + 0x89c], 0
je 0x478215
push esi
push 0x49fce8
call fcn.0044d0a0
mov edi, eax
add esp, 8
test edi, edi
je case.0x4790b5.7
push edi
push str.Version
push ebx
push ebp
call fcn.00444dc0
push edi
call dword [0x7a90d8]
add esp, 0x14
test ebx, ebx
jne 0x47822c
push esi
lea eax, [esi + 1]
push eax
push str.___Version:__lu__0x_lx__n
push ebp
call fcn.0044a120
add esp, 0x10
cmp byte [esp + 0x52], 0
jne case.0x4790b5.7
movzx ebp, byte [esp + 0x51]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x4790b5.7
movzx eax, byte [eax + 0x4796bc]
mov ebx, 0x4a1af7
mov edx, 0x498098
jmp dword [eax*4 + 0x479694]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
sub eax, ecx
cmp eax, 1
je 0x478276
xor esi, esi
jmp 0x47863f
cmp byte [ecx], 0
mov eax, 0x498090
cmove eax, edx
push eax
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x47863f
mov esi, dword [esp + 0x4c]
mov eax, esi
mov edx, dword [esp + 0x48]
sub eax, edx
jne 0x4782a7
xor esi, esi
jmp 0x47863f
cmp eax, 4
jbe 0x4782bd
push esi
push edx
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x47863f
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x4782c3
cmp ecx, 0xa
mov eax, 0x4a145c
push ecx
cmovb eax, ebx
push eax
push str._s_lx
call fcn.0044d0a0
add esp, 0xc
mov esi, eax
jmp 0x47863f
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
inc eax
cmp eax, ecx
jbe 0x478305
xor esi, esi
jmp 0x47863f
push ecx
push eax
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x47863f
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x47863f
push 0x4a1af7
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x47863f
push 1
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.00479ba0
add esp, 0xc
mov esi, eax
jmp 0x47863f
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x4c]
cmp ecx, edx
jae 0x47837d
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x47837d
inc ecx
cmp ecx, edx
jb 0x478370
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x478395
sub eax, 2
je 0x47839a
xor esi, esi
jmp 0x47863f
mov edi, 0x4a149c
cmp ecx, edx
jb 0x4783a5
xor esi, esi
jmp 0x47863f
cmp byte [ecx], 0x5a
jne 0x4783b6
mov ecx, 0x4a14a0
mov edx, 0x4a14a3
jmp 0x4783b7
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push str._u_.2s__.2s__.2s__.2s:_.2s:_.2s__.s
call fcn.0044d0a0
add esp, 0x28
mov esi, eax
jmp 0x47863f
mov ebp, dword [esp + 0x48]
mov esi, 0x4a1af7
mov edi, dword [esp + 0x4c]
mov ecx, ebp
cmp ecx, edi
jae 0x47840d
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x47840d
inc ecx
cmp ecx, edi
jb 0x478400
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x47843b
sub eax, 1
je 0x478436
sub eax, 1
je 0x47842f
xor esi, esi
jmp 0x47863f
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x47843d
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x47849c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x478451
cmp bl, 0x2c
jne 0x478481
inc ecx
inc eax
cmp eax, edi
jae 0x478463
mov dl, byte [eax]
cmp dl, 0x30
jl 0x478463
cmp dl, 0x39
jle 0x478452
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x478481
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x47847c
dec esi
sub edx, 1
jne 0x478471
mov esi, 0x4a1af7
cmp eax, edi
jae 0x47849c
cmp byte [eax], 0x5a
jne 0x478496
mov eax, 0x4a1468
mov edi, 0x4a146c
jmp 0x47849c
mov esi, 0x4a1cb0
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x4a1af7
mov eax, 0x4a1b14
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push str._.4s__.2s__.2s__.2s:_.2s:_c_c_s_.s_s_.s
call fcn.0044d0a0
add esp, 0x38
mov esi, eax
jmp 0x47863f
mov edi, dword [esp + 0x4c]
lea eax, [ebp - 0xc]
mov esi, dword [esp + 0x48]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x478508.13
movzx eax, byte [eax + 0x4796ec]
jmp dword [eax*4 + 0x4796dc]
mov ecx, 2
jmp 0x47851b
mov ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x478508.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x478508.13
lea eax, [eax*4 + 1]
push eax
call dword [0x7a90d4]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x478508.13
cmp ebp, 0xc
jne 0x478574
test edi, edi
je 0x47856b
push edi
push esi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x478638
xor edi, edi
cmp esi, dword [esp + 0x4c]
jae 0x47856b
mov ebp, dword [esp + 0x14]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x47859d
sub eax, 2
jne 0x4785a6
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x478614
cmp ecx, 0x800
jb 0x478600
cmp ecx, 0x10000
jb 0x4785ec
cmp ecx, 0x200000
jae 0x478629
mov al, cl
mov edx, 2
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
mov al, cl
or ecx, 0x20000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x4c]
jb 0x478580
mov byte [edi + ebx], 0
jmp 0x478638
push ebx
call dword [0x7a90d8]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
test esi, esi
je case.0x4790b5.7
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x12c]
cmp byte [edi + 0x89c], 0
je 0x47866b
push esi
push str.Serial_Number
push ebx
push edi
call fcn.00444dc0
add esp, 0x10
test ebx, ebx
jne 0x47867e
push esi
push str.___Serial_Number:__s_n
push edi
call fcn.0044a120
add esp, 0xc
push esi
call dword [0x7a90d8]
push dword [esp + 0x60]
lea eax, [esp + 0x11c]
push dword [esp + 0x60]
push eax
call fcn.0047a4a0
mov esi, eax
add esp, 0x10
test esi, esi
je case.0x4790b5.7
cmp byte [edi + 0x89c], 0
je 0x4786c0
push esi
push str.Signature_Algorithm
push ebx
push edi
call fcn.00444dc0
add esp, 0x10
test ebx, ebx
jne 0x4786d3
push esi
push str.___Signature_Algorithm:__s_n
push edi
call fcn.0044a120
add esp, 0xc
push esi
call dword [0x7a90d8]
add esp, 4
cmp byte [esp + 0x92], 0
jne case.0x4790b5.7
movzx ebp, byte [esp + 0x91]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x4790b5.7
movzx eax, byte [eax + 0x479728]
jmp dword [eax*4 + 0x479700]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
sub eax, ecx
cmp eax, 1
je 0x478729
xor esi, esi
jmp 0x478b36
cmp byte [ecx], 0
mov eax, 0x498090
mov ecx, 0x498098
cmove eax, ecx
push eax
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x478b36
mov esi, dword [esp + 0x8c]
mov eax, esi
mov edx, dword [esp + 0x88]
sub eax, edx
jne 0x478765
xor esi, esi
jmp 0x478b36
cmp eax, 4
jbe 0x47877b
push esi
push edx
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x478b36
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x478781
push ecx
cmp ecx, 0xa
mov eax, 0x4a145c
mov ecx, 0x4a1af7
cmovb eax, ecx
push eax
push str._s_lx
call fcn.0044d0a0
add esp, 0xc
mov esi, eax
jmp 0x478b36
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
inc eax
cmp eax, ecx
jbe 0x4787ce
xor esi, esi
jmp 0x478b36
push ecx
push eax
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x478b36
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x478b36
push 0x4a1af7
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x478b36
push 1
push dword [esp + 0x90]
push dword [esp + 0x90]
call fcn.00479ba0
add esp, 0xc
mov esi, eax
jmp 0x478b36
mov esi, dword [esp + 0x88]
mov ecx, esi
mov edx, dword [esp + 0x8c]
cmp ecx, edx
jae 0x478851
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x478851
inc ecx
cmp ecx, edx
jb 0x478844
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x478869
sub eax, 2
je 0x47886e
xor esi, esi
jmp 0x478b32
mov edi, 0x4a149c
cmp ecx, edx
jb 0x478879
xor esi, esi
jmp 0x478b32
cmp byte [ecx], 0x5a
jne 0x47888a
mov ecx, 0x4a14a0
mov edx, 0x4a14a3
jmp 0x47888b
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push str._u_.2s__.2s__.2s__.2s:_.2s:_.2s__.s
call fcn.0044d0a0
add esp, 0x28
mov esi, eax
jmp 0x478b32
mov ebp, dword [esp + 0x88]
mov esi, 0x4a1af7
mov edi, dword [esp + 0x8c]
mov ecx, ebp
cmp ecx, edi
jae 0x4788ed
nop word [eax + eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4788ed
inc ecx
cmp ecx, edi
jb 0x4788e0
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x47891b
sub eax, 1
je 0x478916
sub eax, 1
je 0x47890f
xor esi, esi
jmp 0x478b32
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x47891d
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x47897c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x478931
cmp bl, 0x2c
jne 0x478961
inc ecx
inc eax
cmp eax, edi
jae 0x478943
mov dl, byte [eax]
cmp dl, 0x30
jl 0x478943
cmp dl, 0x39
jle 0x478932
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x478961
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x47895c
dec esi
sub edx, 1
jne 0x478951
mov esi, 0x4a1af7
cmp eax, edi
jae 0x47897c
cmp byte [eax], 0x5a
jne 0x478976
mov eax, 0x4a1468
mov edi, 0x4a146c
jmp 0x47897c
mov esi, 0x4a1cb0
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x4a1af7
mov eax, 0x4a1b14
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push str._.4s__.2s__.2s__.2s:_.2s:_c_c_s_.s_s_.s
call fcn.0044d0a0
add esp, 0x38
mov esi, eax
jmp 0x478b32
mov edi, dword [esp + 0x8c]
lea eax, [ebp - 0xc]
mov esi, dword [esp + 0x88]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x4789ee.13
movzx eax, byte [eax + 0x479758]
jmp dword [eax*4 + 0x479748]
mov ecx, 2
jmp 0x478a01
mov ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x4789ee.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x4789ee.13
lea eax, [eax*4 + 1]
push eax
call dword [0x7a90d4]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x4789ee.13
cmp ebp, 0xc
jne 0x478a5a
test edi, edi
je 0x478a51
push edi
push esi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x478b2b
xor edi, edi
cmp esi, dword [esp + 0x8c]
jae 0x478a51
mov ebp, dword [esp + 0x14]
nop dword [eax]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x478a8d
sub eax, 2
jne 0x478a96
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x478b04
cmp ecx, 0x800
jb 0x478af0
cmp ecx, 0x10000
jb 0x478adc
cmp ecx, 0x200000
jae 0x478b1c
mov al, cl
mov edx, 2
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
mov al, cl
or ecx, 0x20000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x8c]
jb 0x478a70
mov byte [edi + ebx], 0
jmp 0x478b2b
push ebx
call dword [0x7a90d8]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
mov edi, dword [esp + 0x18]
test esi, esi
je case.0x4790b5.7
cmp byte [edi + 0x89c], 0
mov ebx, dword [esp + 0x12c]
je 0x478b5e
push esi
push str.Start_Date
push ebx
push edi
call fcn.00444dc0
add esp, 0x10
test ebx, ebx
jne 0x478b71
push esi
push str.___Start_Date:__s_n
push edi
call fcn.0044a120
add esp, 0xc
push esi
call dword [0x7a90d8]
add esp, 4
cmp byte [esp + 0xa2], 0
jne case.0x4790b5.7
movzx ebp, byte [esp + 0xa1]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x4790b5.7
movzx eax, byte [eax + 0x479794]
jmp dword [eax*4 + 0x47976c]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
sub eax, ecx
cmp eax, 1
je 0x478bc7
xor esi, esi
jmp 0x478fd6
cmp byte [ecx], 0
mov eax, 0x498090
mov ecx, 0x498098
cmove eax, ecx
push eax
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x478fd6
mov esi, dword [esp + 0x9c]
mov eax, esi
mov edx, dword [esp + 0x98]
sub eax, edx
jne 0x478c03
xor esi, esi
jmp 0x478fd6
cmp eax, 4
jbe 0x478c19
push esi
push edx
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x478fd6
movsx ecx, byte [edx]
sar ecx, 0x1f
nop
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x478c20
push ecx
cmp ecx, 0xa
mov eax, 0x4a145c
mov ecx, 0x4a1af7
cmovb eax, ecx
push eax
push str._s_lx
call fcn.0044d0a0
add esp, 0xc
mov esi, eax
jmp 0x478fd6
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, ecx
jbe 0x478c6d
xor esi, esi
jmp 0x478fd6
push ecx
push eax
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x478fd6
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x478fd6
push 0x4a1af7
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x478fd6
push 1
push dword [esp + 0xa0]
push dword [esp + 0xa0]
call fcn.00479ba0
add esp, 0xc
mov esi, eax
jmp 0x478fd6
mov esi, dword [esp + 0x98]
mov ecx, esi
mov edx, dword [esp + 0x9c]
cmp ecx, edx
jae 0x478cf0
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x478cf0
inc ecx
cmp ecx, edx
jb 0x478ce3
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x478d08
sub eax, 2
je 0x478d0d
xor esi, esi
jmp 0x478fd2
mov edi, 0x4a149c
cmp ecx, edx
jb 0x478d18
xor esi, esi
jmp 0x478fd2
cmp byte [ecx], 0x5a
jne 0x478d29
mov ecx, 0x4a14a0
mov edx, 0x4a14a3
jmp 0x478d2a
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push str._u_.2s__.2s__.2s__.2s:_.2s:_.2s__.s
call fcn.0044d0a0
add esp, 0x28
mov esi, eax
jmp 0x478fd2
mov ebp, dword [esp + 0x98]
mov esi, 0x4a1af7
mov edi, dword [esp + 0x9c]
mov ecx, ebp
cmp ecx, edi
jae 0x478d8d
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x478d8d
inc ecx
cmp ecx, edi
jb 0x478d80
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x478dbb
sub eax, 1
je 0x478db6
sub eax, 1
je 0x478daf
xor esi, esi
jmp 0x478fd2
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x478dbd
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x478e1c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x478dd1
cmp bl, 0x2c
jne 0x478e01
inc ecx
inc eax
cmp eax, edi
jae 0x478de3
mov dl, byte [eax]
cmp dl, 0x30
jl 0x478de3
cmp dl, 0x39
jle 0x478dd2
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x478e01
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x478dfc
dec esi
sub edx, 1
jne 0x478df1
mov esi, 0x4a1af7
cmp eax, edi
jae 0x478e1c
cmp byte [eax], 0x5a
jne 0x478e16
mov eax, 0x4a1468
mov edi, 0x4a146c
jmp 0x478e1c
mov esi, 0x4a1cb0
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x4a1af7
mov eax, 0x4a1b14
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push str._.4s__.2s__.2s__.2s:_.2s:_c_c_s_.s_s_.s
call fcn.0044d0a0
add esp, 0x38
mov esi, eax
jmp 0x478fd2
mov edi, dword [esp + 0x9c]
lea eax, [ebp - 0xc]
mov esi, dword [esp + 0x98]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x478e8e.13
movzx eax, byte [eax + 0x4797c4]
jmp dword [eax*4 + 0x4797b4]
mov ecx, 2
jmp 0x478ea1
mov ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x478e8e.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x478e8e.13
lea eax, [eax*4 + 1]
push eax
call dword [0x7a90d4]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x478e8e.13
cmp ebp, 0xc
jne 0x478efa
test edi, edi
je 0x478ef1
push edi
push esi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x478fcb
xor edi, edi
cmp esi, dword [esp + 0x9c]
jae 0x478ef1
mov ebp, dword [esp + 0x14]
nop dword [eax]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x478f2d
sub eax, 2
jne 0x478f36
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x478fa4
cmp ecx, 0x800
jb 0x478f90
cmp ecx, 0x10000
jb 0x478f7c
cmp ecx, 0x200000
jae 0x478fbc
mov al, cl
mov edx, 2
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
mov al, cl
or ecx, 0x20000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x9c]
jb 0x478f10
mov byte [edi + ebx], 0
jmp 0x478fcb
push ebx
call dword [0x7a90d8]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
mov edi, dword [esp + 0x18]
test esi, esi
je case.0x4790b5.7
cmp byte [edi + 0x89c], 0
mov ebp, dword [esp + 0x12c]
je 0x478ffe
push esi
push str.Expire_Date
push ebp
push edi
call fcn.00444dc0
add esp, 0x10
test ebp, ebp
jne 0x479011
push esi
push str.___Expire_Date:__s_n
push edi
call fcn.0044a120
add esp, 0xc
push esi
call dword [0x7a90d8]
push dword [esp + 0xd0]
lea eax, [esp + 0x11c]
push dword [esp + 0xd0]
push eax
call fcn.0047a4a0
mov esi, eax
add esp, 0x10
test esi, esi
je case.0x4790b5.7
cmp byte [edi + 0x89c], 0
je 0x479059
push esi
push str.Public_Key_Algorithm
push ebp
push edi
call fcn.00444dc0
add esp, 0x10
test ebp, ebp
jne 0x47906c
push esi
push str.___Public_Key_Algorithm:__s_n
push edi
call fcn.0044a120
add esp, 0xc
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x118]
push eax
push esi
push ebp
push edi
call fcn.00479d10
push esi
call dword [0x7a90d8]
add esp, 0x18
cmp byte [esp + 0x72], 0
jne case.0x4790b5.7
movzx ecx, byte [esp + 0x71]
mov dword [esp + 0x14], ecx
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x4790b5.7
movzx eax, byte [eax + 0x479800]
jmp dword [eax*4 + 0x4797d8]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
sub eax, ecx
cmp eax, 1
je 0x4790d2
xor esi, esi
jmp 0x4794a0
cmp byte [ecx], 0
mov eax, 0x498090
mov ecx, 0x498098
cmove eax, ecx
push eax
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x4794a0
mov esi, dword [esp + 0x6c]
mov eax, esi
mov edx, dword [esp + 0x68]
sub eax, edx
jne 0x479108
xor esi, esi
jmp 0x4794a0
cmp eax, 4
jbe 0x47911e
push esi
push edx
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x4794a0
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x479124
push ecx
cmp ecx, 0xa
mov eax, 0x4a145c
mov ecx, 0x4a1af7
cmovb eax, ecx
push eax
push str._s_lx
call fcn.0044d0a0
add esp, 0xc
mov esi, eax
jmp 0x4794a0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
inc eax
cmp eax, ecx
jbe 0x47916b
xor esi, esi
jmp 0x4794a0
push ecx
push eax
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x4794a0
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.0047b390
add esp, 8
mov esi, eax
jmp 0x4794a0
push 0x4a1af7
call dword [0x7a90e0]
add esp, 4
mov esi, eax
jmp 0x4794a0
push 1
push dword [esp + 0x70]
push dword [esp + 0x70]
call fcn.00479ba0
add esp, 0xc
mov esi, eax
jmp 0x4794a0
mov esi, dword [esp + 0x68]
mov ecx, esi
mov edx, dword [esp + 0x6c]
cmp ecx, edx
jae 0x4791dd
nop
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4791dd
inc ecx
cmp ecx, edx
jb 0x4791d0
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x4791f5
sub eax, 2
je 0x4791fa
xor esi, esi
jmp 0x47949c
mov edi, 0x4a149c
cmp ecx, edx
jb 0x479205
xor esi, esi
jmp 0x47949c
cmp byte [ecx], 0x5a
jne 0x479216
mov ecx, 0x4a14a0
mov edx, 0x4a14a3
jmp 0x479217
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push str._u_.2s__.2s__.2s__.2s:_.2s:_.2s__.s
call fcn.0044d0a0
add esp, 0x28
mov esi, eax
jmp 0x47949c
mov ebp, dword [esp + 0x68]
mov edi, 0x4a1af7
mov esi, dword [esp + 0x6c]
mov ecx, ebp
cmp ecx, esi
jae 0x47926d
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x47926d
inc ecx
cmp ecx, esi
jb 0x479260
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x47929b
sub eax, 1
je 0x479296
sub eax, 1
je 0x47928f
xor esi, esi
jmp 0x479495
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x47929d
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, esi
jae 0x4792fc
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x4792b1
cmp bl, 0x2c
jne 0x4792e1
inc ecx
inc eax
cmp eax, esi
jae 0x4792c3
mov dl, byte [eax]
cmp dl, 0x30
jl 0x4792c3
cmp dl, 0x39
jle 0x4792b2
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x4792e1
lea edi, [ecx - 1]
add edi, edx
cmp byte [edi], 0x30
jne 0x4792dc
dec edi
sub edx, 1
jne 0x4792d1
mov edi, 0x4a1af7
cmp eax, esi
jae 0x4792fc
cmp byte [eax], 0x5a
jne 0x4792f6
mov eax, 0x4a1468
mov esi, 0x4a146c
jmp 0x4792fc
mov edi, 0x4a1cb0
inc eax
push eax
sub esi, eax
test edx, edx
push esi
push edi
push ecx
push edx
mov ecx, 0x4a1af7
mov eax, 0x4a1b14
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push str._.4s__.2s__.2s__.2s:_.2s:_c_c_s_.s_s_.s
call fcn.0044d0a0
add esp, 0x38
mov esi, eax
jmp 0x479495
mov edi, dword [esp + 0x6c]
add ecx, 0xfffffff4
mov esi, dword [esp + 0x68]
mov ebp, 1
sub edi, esi
cmp ecx, 0x12
ja case.0x479364.13
movzx eax, byte [ecx + 0x479830]
jmp dword [eax*4 + 0x479820]
mov ebp, 2
jmp case.0x479364.12
mov ebp, 4
xor edx, edx
mov eax, edi
div ebp
test edx, edx
jne case.0x479364.13
mov eax, edi
div ebp
cmp eax, 0x3fffffff
ja case.0x479364.13
lea eax, [eax*4 + 1]
push eax
call dword [0x7a90d4]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x479364.13
cmp dword [esp + 0x14], 0xc
jne 0x4793ce
test edi, edi
je 0x4793c5
push edi
push esi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x47948e
xor edi, edi
cmp esi, dword [esp + 0x6c]
jae 0x4793c5
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x4793f3
sub eax, 2
jne 0x4793fc
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x47946a
cmp ecx, 0x800
jb 0x479456
cmp ecx, 0x10000
jb 0x479442
cmp ecx, 0x200000
jae 0x47947f
mov al, cl
mov edx, 2
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
mov al, cl
or ecx, 0x20000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x6c]
jb 0x4793d6
mov byte [edi + ebx], 0
jmp 0x47948e
push ebx
call dword [0x7a90d8]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
mov ebp, dword [esp + 0x12c]
mov edi, dword [esp + 0x18]
test esi, esi
je case.0x4790b5.7
cmp byte [edi + 0x89c], 0
je 0x4794c1
push esi
push str.Signature
push ebp
push edi
call fcn.00444dc0
add esp, 0x10
test ebp, ebp
jne 0x4794d4
push esi
push str.___Signature:__s_n
push edi
call fcn.0044a120
add esp, 0xc
push esi
call dword [0x7a90d8]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x38]
sub eax, ecx
push eax
push ecx
push edi
call fcn.004602f0
add esp, 0x18
test eax, eax
jne 0x47952f
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 0x3f]
add ecx, 0x37
shr eax, 6
add eax, ecx
push eax
call dword [0x7a90d4]
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x47953a
push dword [esp + 0x20]
call dword [0x7a90d8]
add esp, 4
mov eax, 0x1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov ecx, str._____BEGIN_CERTIFICATE_____
lea edx, [ebx + 2]
xor esi, esi
movzx eax, byte [ecx]
mov byte [edx - 2], al
movzx eax, byte [ecx]
test al, al
je 0x479598
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x479597
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x479592
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x47958d
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x479544
jmp 0x479598
add esi, 3
jmp 0x479598
add esi, 2
jmp 0x479598
inc esi
mov byte [esi + ebx], 0xa
lea edi, [esi + 1]
xor esi, esi
cmp dword [esp + 0x1c], esi
jbe 0x4795c5
mov eax, dword [esp + 0x20]
add eax, esi
push eax
lea eax, [ebx + edi]
push eax
call fcn.00479c80
add esi, 0x40
add esp, 8
add edi, eax
cmp esi, dword [esp + 0x1c]
jb 0x4795a7
lea ebp, [ebx + edi]
mov ecx, str._____END_CERTIFICATE_____
xor esi, esi
lea edx, [ebp + 2]
movzx eax, byte [ecx]
mov byte [edx - 2], al
movzx eax, byte [ecx]
test al, al
je 0x479626
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x479625
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x479620
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x47961b
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x4795d2
jmp 0x479626
add esi, 3
jmp 0x479626
add esi, 2
jmp 0x479626
inc esi
mov byte [esi + ebp], 0xa
lea eax, [esi + ebx]
mov byte [eax + edi + 1], 0
push dword [esp + 0x20]
call dword [0x7a90d8]
mov ebp, dword [esp + 0x1c]
add esp, 4
cmp byte [ebp + 0x89c], 0
je 0x479662
push ebx
push str.Cert
push dword [esp + 0x134]
push ebp
call fcn.00444dc0
add esp, 0x10
cmp dword [esp + 0x12c], 0
jne 0x47967b
push ebx
push 0x497da8
push ebp
call fcn.0044a120
add esp, 0xc
push ebx
call dword [0x7a90d8]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret