Function at 0x4c7ec0
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 0x4c7ef4
test ebx, ebx
je 0x4c7ef4
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.004c9680
add esp, 0xc
test eax, eax
je 0x4c7f21
pop ebp
mov eax, 0x3c
pop ebx
add esp, 0x114
ret
push esi
lea eax, [esp + 0xa0]
push edi
push eax
call fcn.004c9990
mov esi, eax
add esp, 4
test esi, esi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
je 0x4c7f56
push esi
push str.Subject
push ebx
push ebp
call fcn.00494a40
add esp, 0x10
test ebx, ebx
jne 0x4c7f6a
push esi
push ebx
push str._2d_Subject:__s_n
push ebp
call fcn.00499dc0
add esp, 0x10
push esi
call dword [0x50b0e0]
lea eax, [esp + 0x78]
push eax
call fcn.004c9990
mov esi, eax
add esp, 8
test esi, esi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
je 0x4c7fa1
push esi
push str.Issuer
push ebx
push ebp
call fcn.00494a40
add esp, 0x10
test ebx, ebx
jne 0x4c7fb4
push esi
push str.___Issuer:__s_n
push ebp
call fcn.00499dc0
add esp, 0xc
push esi
call dword [0x50b0e0]
mov ecx, dword [esp + 0x3c]
add esp, 4
mov edx, dword [esp + 0x3c]
xor esi, esi
cmp ecx, edx
jae 0x4c7fdd
nop dword [eax]
movzx eax, byte [ecx]
inc ecx
shl esi, 8
or esi, eax
cmp ecx, edx
jb 0x4c7fd0
cmp byte [ebp + 0x89c], 0
je 0x4c8015
push esi
push 0x4ffbc0
call fcn.0049cd40
mov edi, eax
add esp, 8
test edi, edi
je case.0x4c8ed5.7
push edi
push str.Version
push ebx
push ebp
call fcn.00494a40
push edi
call dword [0x50b0e0]
add esp, 0x14
test ebx, ebx
jne 0x4c802c
push esi
lea eax, [esi + 1]
push eax
push str.___Version:__lu__0x_lx__n
push ebp
call fcn.00499dc0
add esp, 0x10
cmp byte [esp + 0x52], 0
jne case.0x4c8ed5.7
movzx ebx, byte [esp + 0x51]
lea eax, [ebx - 1]
cmp eax, 0x1d
ja case.0x4c8ed5.7
movzx eax, byte [eax + 0x4c94f8]
mov edi, 0x501c2b
mov edx, 0x4f7ee8
jmp dword [eax*4 + 0x4c94d0]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
sub eax, ecx
cmp eax, 1
je 0x4c8076
xor edi, edi
jmp 0x4c8457
cmp byte [ecx], 0
mov eax, 0x4f7ee0
cmove eax, edx
push eax
call dword [0x50b0e8]
add esp, 4
mov edi, eax
jmp 0x4c8457
mov esi, dword [esp + 0x4c]
mov eax, esi
mov edx, dword [esp + 0x48]
sub eax, edx
jne 0x4c80a7
xor edi, edi
jmp 0x4c8457
cmp eax, 4
jbe 0x4c80bd
push esi
push edx
call fcn.004cb1e0
add esp, 8
mov edi, eax
jmp 0x4c8457
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x4c80c3
cmp ecx, 0xa
mov eax, 0x501358
push ecx
cmovb eax, edi
push eax
push str._s_lx
call fcn.0049cd40
add esp, 0xc
mov edi, eax
jmp 0x4c8457
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
inc eax
cmp eax, ecx
jbe 0x4c8105
xor edi, edi
jmp 0x4c8457
push ecx
push eax
call fcn.004cb1e0
add esp, 8
mov edi, eax
jmp 0x4c8457
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.004cb1e0
add esp, 8
mov edi, eax
jmp 0x4c8457
push 0x501c2b
call dword [0x50b0e8]
add esp, 4
mov edi, eax
jmp 0x4c8457
push 1
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.004c99e0
add esp, 0xc
mov edi, eax
jmp 0x4c8457
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x4c]
cmp ecx, edx
jae 0x4c817d
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c817d
inc ecx
cmp ecx, edx
jb 0x4c8170
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x4c8195
sub eax, 2
je 0x4c819a
xor edi, edi
jmp 0x4c8457
mov edi, 0x501398
cmp ecx, edx
jb 0x4c81a5
xor edi, edi
jmp 0x4c8457
cmp byte [ecx], 0x5a
jne 0x4c81b6
mov ecx, 0x50139c
mov edx, 0x50139f
jmp 0x4c81b7
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.0049cd40
add esp, 0x28
mov edi, eax
jmp 0x4c8457
mov ebp, dword [esp + 0x48]
mov esi, 0x501c2b
mov edi, dword [esp + 0x4c]
mov ecx, ebp
cmp ecx, edi
jae 0x4c820d
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c820d
inc ecx
cmp ecx, edi
jb 0x4c8200
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x4c823b
sub eax, 1
je 0x4c8236
sub eax, 1
je 0x4c822f
xor edi, edi
jmp 0x4c8453
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x4c823d
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x4c829c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x4c8251
cmp bl, 0x2c
jne 0x4c8281
inc ecx
inc eax
cmp eax, edi
jae 0x4c8263
mov dl, byte [eax]
cmp dl, 0x30
jl 0x4c8263
cmp dl, 0x39
jle 0x4c8252
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x4c8281
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x4c827c
dec esi
sub edx, 1
jne 0x4c8271
mov esi, 0x501c2b
cmp eax, edi
jae 0x4c829c
cmp byte [eax], 0x5a
jne 0x4c8296
mov eax, 0x501364
mov edi, 0x501368
jmp 0x4c829c
mov esi, 0x501dc4
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x501c2b
mov eax, 0x501c48
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.0049cd40
add esp, 0x38
mov edi, eax
jmp 0x4c8453
mov esi, dword [esp + 0x4c]
lea eax, [ebx - 0xc]
mov edi, dword [esp + 0x48]
mov ecx, 1
sub esi, edi
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x4c8308.13
movzx eax, byte [eax + 0x4c9528]
jmp dword [eax*4 + 0x4c9518]
mov ecx, 2
jmp 0x4c831b
mov ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
mov eax, esi
div ecx
test edx, edx
jne case.0x4c8308.13
mov eax, esi
div ecx
cmp eax, 0x3fffffff
ja case.0x4c8308.13
lea eax, [eax*4 + 1]
push eax
call dword [0x50b0dc]
mov ebp, eax
add esp, 4
test ebp, ebp
je case.0x4c8308.13
cmp ebx, 0xc
jne 0x4c8374
test esi, esi
je 0x4c836b
push esi
push edi
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + ebp], 0
jmp 0x4c844c
xor esi, esi
cmp edi, dword [esp + 0x4c]
jae 0x4c836b
nop dword [eax]
mov eax, dword [esp + 0x14]
xor ecx, ecx
sub eax, 2
je 0x4c839f
sub eax, 2
jne 0x4c83a8
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
add edi, 2
movzx eax, byte [edi]
shl ecx, 8
or ecx, eax
inc edi
movzx eax, byte [edi]
mov ebx, 1
shl ecx, 8
inc edi
or ecx, eax
cmp ecx, 0x80
jb 0x4c8426
cmp ecx, 0x800
jb 0x4c840e
cmp ecx, 0x10000
jb 0x4c83f2
cmp ecx, 0x200000
jae 0x4c843d
mov al, cl
lea edx, [esi + ebp]
and al, 0x3f
or ecx, 0x400000
or al, 0x80
mov ebx, 3
mov byte [edx + 3], al
shr ecx, 6
jmp 0x4c83fa
lea edx, [esi + ebp]
mov ebx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edx + 2], al
jmp 0x4c8411
lea edx, [esi + ebp]
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc ebx
mov byte [edx + 1], al
jmp 0x4c8429
lea edx, [esi + ebp]
add esi, ebx
mov byte [edx], cl
cmp edi, dword [esp + 0x4c]
jb 0x4c8380
mov byte [esi + ebp], 0
jmp 0x4c844c
push ebp
call dword [0x50b0e0]
add esp, 4
or esi, 0xffffffff
xor ebp, ebp
xor edi, edi
test esi, esi
cmovns edi, ebp
mov ebp, dword [esp + 0x18]
test edi, edi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
mov ebx, dword [esp + 0x12c]
je 0x4c847f
push edi
push str.Serial_Number
push ebx
push ebp
call fcn.00494a40
add esp, 0x10
test ebx, ebx
jne 0x4c8492
push edi
push str.___Serial_Number:__s_n
push ebp
call fcn.00499dc0
add esp, 0xc
push edi
call dword [0x50b0e0]
push dword [esp + 0x60]
lea eax, [esp + 0x11c]
push dword [esp + 0x60]
push eax
call fcn.004ca2d0
mov esi, eax
add esp, 0x10
test esi, esi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
je 0x4c84d4
push esi
push str.Signature_Algorithm
push ebx
push ebp
call fcn.00494a40
add esp, 0x10
test ebx, ebx
jne 0x4c84e7
push esi
push str.___Signature_Algorithm:__s_n
push ebp
call fcn.00499dc0
add esp, 0xc
push esi
call dword [0x50b0e0]
add esp, 4
cmp byte [esp + 0x92], 0
jne case.0x4c8ed5.7
movzx ebx, byte [esp + 0x91]
lea eax, [ebx - 1]
cmp eax, 0x1d
ja case.0x4c8ed5.7
movzx eax, byte [eax + 0x4c9564]
jmp dword [eax*4 + 0x4c953c]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
sub eax, ecx
cmp eax, 1
je 0x4c853d
xor esi, esi
jmp 0x4c894f
cmp byte [ecx], 0
mov eax, 0x4f7ee0
mov ecx, 0x4f7ee8
cmove eax, ecx
push eax
call dword [0x50b0e8]
add esp, 4
mov esi, eax
jmp 0x4c894f
mov esi, dword [esp + 0x8c]
mov eax, esi
mov edx, dword [esp + 0x88]
sub eax, edx
jne 0x4c8579
xor esi, esi
jmp 0x4c894f
cmp eax, 4
jbe 0x4c858f
push esi
push edx
call fcn.004cb1e0
add esp, 8
mov esi, eax
jmp 0x4c894f
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x4c8595
push ecx
cmp ecx, 0xa
mov eax, 0x501358
mov ecx, 0x501c2b
cmovb eax, ecx
push eax
push str._s_lx
call fcn.0049cd40
add esp, 0xc
mov esi, eax
jmp 0x4c894f
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
inc eax
cmp eax, ecx
jbe 0x4c85e2
xor esi, esi
jmp 0x4c894f
push ecx
push eax
call fcn.004cb1e0
add esp, 8
mov esi, eax
jmp 0x4c894f
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.004cb1e0
add esp, 8
mov esi, eax
jmp 0x4c894f
push 0x501c2b
call dword [0x50b0e8]
add esp, 4
mov esi, eax
jmp 0x4c894f
push 1
push dword [esp + 0x90]
push dword [esp + 0x90]
call fcn.004c99e0
add esp, 0xc
mov esi, eax
jmp 0x4c894f
mov esi, dword [esp + 0x88]
mov ecx, esi
mov edx, dword [esp + 0x8c]
cmp ecx, edx
jae 0x4c8665
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c8665
inc ecx
cmp ecx, edx
jb 0x4c8658
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x4c867d
sub eax, 2
je 0x4c8682
xor esi, esi
jmp 0x4c894f
mov edi, 0x501398
cmp ecx, edx
jb 0x4c868d
xor esi, esi
jmp 0x4c894f
cmp byte [ecx], 0x5a
jne 0x4c869e
mov ecx, 0x50139c
mov edx, 0x50139f
jmp 0x4c869f
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.0049cd40
add esp, 0x28
mov esi, eax
jmp 0x4c894f
mov ebp, dword [esp + 0x88]
mov esi, 0x501c2b
mov edi, dword [esp + 0x8c]
mov ecx, ebp
cmp ecx, edi
jae 0x4c86fd
nop
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c86fd
inc ecx
cmp ecx, edi
jb 0x4c86f0
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x4c872b
sub eax, 1
je 0x4c8726
sub eax, 1
je 0x4c871f
xor esi, esi
jmp 0x4c894b
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x4c872d
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x4c878c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x4c8741
cmp bl, 0x2c
jne 0x4c8771
inc ecx
inc eax
cmp eax, edi
jae 0x4c8753
mov dl, byte [eax]
cmp dl, 0x30
jl 0x4c8753
cmp dl, 0x39
jle 0x4c8742
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x4c8771
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x4c876c
dec esi
sub edx, 1
jne 0x4c8761
mov esi, 0x501c2b
cmp eax, edi
jae 0x4c878c
cmp byte [eax], 0x5a
jne 0x4c8786
mov eax, 0x501364
mov edi, 0x501368
jmp 0x4c878c
mov esi, 0x501dc4
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x501c2b
mov eax, 0x501c48
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.0049cd40
add esp, 0x38
mov esi, eax
jmp 0x4c894b
mov edi, dword [esp + 0x8c]
lea eax, [ebx - 0xc]
mov esi, dword [esp + 0x88]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x4c87fe.13
movzx eax, byte [eax + 0x4c9594]
jmp dword [eax*4 + 0x4c9584]
mov ecx, 2
jmp 0x4c8811
mov ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x4c87fe.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x4c87fe.13
lea eax, [eax*4 + 1]
push eax
call dword [0x50b0dc]
mov ebp, eax
add esp, 4
test ebp, ebp
je case.0x4c87fe.13
cmp ebx, 0xc
jne 0x4c886a
test edi, edi
je 0x4c8861
push edi
push esi
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebp], 0
jmp 0x4c8944
xor edi, edi
cmp esi, dword [esp + 0x8c]
jae 0x4c8861
mov eax, dword [esp + 0x14]
xor ecx, ecx
sub eax, 2
je 0x4c8894
sub eax, 2
jne 0x4c889d
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 ebx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x4c891b
cmp ecx, 0x800
jb 0x4c8903
cmp ecx, 0x10000
jb 0x4c88e7
cmp ecx, 0x200000
jae 0x4c8935
mov al, cl
lea edx, [edi + ebp]
and al, 0x3f
or ecx, 0x400000
or al, 0x80
mov ebx, 3
mov byte [edx + 3], al
shr ecx, 6
jmp 0x4c88ef
lea edx, [edi + ebp]
mov ebx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edx + 2], al
jmp 0x4c8906
lea edx, [edi + ebp]
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc ebx
mov byte [edx + 1], al
jmp 0x4c891e
lea edx, [edi + ebp]
add edi, ebx
mov byte [edx], cl
cmp esi, dword [esp + 0x8c]
jb 0x4c8875
mov byte [edi + ebp], 0
jmp 0x4c8944
push ebp
call dword [0x50b0e0]
add esp, 4
or edi, 0xffffffff
xor ebp, ebp
xor esi, esi
test edi, edi
cmovns esi, ebp
mov ebp, dword [esp + 0x18]
test esi, esi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
mov edi, dword [esp + 0x12c]
je 0x4c8977
push esi
push str.Start_Date
push edi
push ebp
call fcn.00494a40
add esp, 0x10
test edi, edi
jne 0x4c898a
push esi
push str.___Start_Date:__s_n
push ebp
call fcn.00499dc0
add esp, 0xc
push esi
call dword [0x50b0e0]
add esp, 4
cmp byte [esp + 0xa2], 0
jne case.0x4c8ed5.7
movzx ebx, byte [esp + 0xa1]
lea eax, [ebx - 1]
cmp eax, 0x1d
ja case.0x4c8ed5.7
movzx eax, byte [eax + 0x4c95d0]
jmp dword [eax*4 + 0x4c95a8]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
sub eax, ecx
cmp eax, 1
je 0x4c89e0
xor edi, edi
jmp 0x4c8dfa
cmp byte [ecx], 0
mov eax, 0x4f7ee0
mov ecx, 0x4f7ee8
cmove eax, ecx
push eax
call dword [0x50b0e8]
add esp, 4
mov edi, eax
jmp 0x4c8dfa
mov esi, dword [esp + 0x9c]
mov eax, esi
mov edx, dword [esp + 0x98]
sub eax, edx
jne 0x4c8a1c
xor edi, edi
jmp 0x4c8dfa
cmp eax, 4
jbe 0x4c8a32
push esi
push edx
call fcn.004cb1e0
add esp, 8
mov edi, eax
jmp 0x4c8dfa
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x4c8a38
push ecx
cmp ecx, 0xa
mov eax, 0x501358
mov ecx, 0x501c2b
cmovb eax, ecx
push eax
push str._s_lx
call fcn.0049cd40
add esp, 0xc
mov edi, eax
jmp 0x4c8dfa
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, ecx
jbe 0x4c8a85
xor edi, edi
jmp 0x4c8dfa
push ecx
push eax
call fcn.004cb1e0
add esp, 8
mov edi, eax
jmp 0x4c8dfa
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.004cb1e0
add esp, 8
mov edi, eax
jmp 0x4c8dfa
push 0x501c2b
call dword [0x50b0e8]
add esp, 4
mov edi, eax
jmp 0x4c8dfa
push 1
push dword [esp + 0xa0]
push dword [esp + 0xa0]
call fcn.004c99e0
add esp, 0xc
mov edi, eax
jmp 0x4c8dfa
mov esi, dword [esp + 0x98]
mov ecx, esi
mov edx, dword [esp + 0x9c]
cmp ecx, edx
jae 0x4c8b0d
nop dword [eax + eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c8b0d
inc ecx
cmp ecx, edx
jb 0x4c8b00
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x4c8b25
sub eax, 2
je 0x4c8b2a
xor edi, edi
jmp 0x4c8dfa
mov edi, 0x501398
cmp ecx, edx
jb 0x4c8b35
xor edi, edi
jmp 0x4c8dfa
cmp byte [ecx], 0x5a
jne 0x4c8b46
mov ecx, 0x50139c
mov edx, 0x50139f
jmp 0x4c8b47
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.0049cd40
add esp, 0x28
mov edi, eax
jmp 0x4c8dfa
mov ebp, dword [esp + 0x98]
mov esi, 0x501c2b
mov edi, dword [esp + 0x9c]
mov ecx, ebp
cmp ecx, edi
jae 0x4c8ba3
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c8ba3
inc ecx
cmp ecx, edi
jb 0x4c8b96
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x4c8bd1
sub eax, 1
je 0x4c8bcc
sub eax, 1
je 0x4c8bc5
xor edi, edi
jmp 0x4c8df6
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x4c8bd3
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x4c8c32
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x4c8be7
cmp bl, 0x2c
jne 0x4c8c17
inc ecx
inc eax
cmp eax, edi
jae 0x4c8bf9
mov dl, byte [eax]
cmp dl, 0x30
jl 0x4c8bf9
cmp dl, 0x39
jle 0x4c8be8
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x4c8c17
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x4c8c12
dec esi
sub edx, 1
jne 0x4c8c07
mov esi, 0x501c2b
cmp eax, edi
jae 0x4c8c32
cmp byte [eax], 0x5a
jne 0x4c8c2c
mov eax, 0x501364
mov edi, 0x501368
jmp 0x4c8c32
mov esi, 0x501dc4
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x501c2b
mov eax, 0x501c48
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.0049cd40
add esp, 0x38
mov edi, eax
jmp 0x4c8df6
mov esi, dword [esp + 0x9c]
lea eax, [ebx - 0xc]
mov edi, dword [esp + 0x98]
mov ecx, 1
sub esi, edi
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x4c8ca4.13
movzx eax, byte [eax + 0x4c9600]
jmp dword [eax*4 + 0x4c95f0]
mov ecx, 2
jmp 0x4c8cb7
mov ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
mov eax, esi
div ecx
test edx, edx
jne case.0x4c8ca4.13
mov eax, esi
div ecx
cmp eax, 0x3fffffff
ja case.0x4c8ca4.13
lea eax, [eax*4 + 1]
push eax
call dword [0x50b0dc]
mov ebp, eax
add esp, 4
test ebp, ebp
je case.0x4c8ca4.13
cmp ebx, 0xc
jne 0x4c8d10
test esi, esi
je 0x4c8d07
push esi
push edi
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + ebp], 0
jmp 0x4c8def
xor esi, esi
cmp edi, dword [esp + 0x9c]
jae 0x4c8d07
nop dword [eax + eax]
mov eax, dword [esp + 0x14]
xor ecx, ecx
sub eax, 2
je 0x4c8d3f
sub eax, 2
jne 0x4c8d48
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
add edi, 2
movzx eax, byte [edi]
shl ecx, 8
or ecx, eax
inc edi
movzx eax, byte [edi]
mov ebx, 1
shl ecx, 8
inc edi
or ecx, eax
cmp ecx, 0x80
jb 0x4c8dc6
cmp ecx, 0x800
jb 0x4c8dae
cmp ecx, 0x10000
jb 0x4c8d92
cmp ecx, 0x200000
jae 0x4c8de0
mov al, cl
lea edx, [esi + ebp]
and al, 0x3f
or ecx, 0x400000
or al, 0x80
mov ebx, 3
mov byte [edx + 3], al
shr ecx, 6
jmp 0x4c8d9a
lea edx, [esi + ebp]
mov ebx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edx + 2], al
jmp 0x4c8db1
lea edx, [esi + ebp]
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc ebx
mov byte [edx + 1], al
jmp 0x4c8dc9
lea edx, [esi + ebp]
add esi, ebx
mov byte [edx], cl
cmp edi, dword [esp + 0x9c]
jb 0x4c8d20
mov byte [esi + ebp], 0
jmp 0x4c8def
push ebp
call dword [0x50b0e0]
add esp, 4
or esi, 0xffffffff
xor ebp, ebp
xor edi, edi
test esi, esi
cmovns edi, ebp
mov ebp, dword [esp + 0x18]
test edi, edi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
mov ebx, dword [esp + 0x12c]
je 0x4c8e22
push edi
push str.Expire_Date
push ebx
push ebp
call fcn.00494a40
add esp, 0x10
test ebx, ebx
jne 0x4c8e35
push edi
push str.___Expire_Date:__s_n
push ebp
call fcn.00499dc0
add esp, 0xc
push edi
call dword [0x50b0e0]
push dword [esp + 0xd0]
lea eax, [esp + 0x11c]
push dword [esp + 0xd0]
push eax
call fcn.004ca2d0
mov esi, eax
add esp, 0x10
test esi, esi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
je 0x4c8e7d
push esi
push str.Public_Key_Algorithm
push ebx
push ebp
call fcn.00494a40
add esp, 0x10
test ebx, ebx
jne 0x4c8e90
push esi
push str.___Public_Key_Algorithm:__s_n
push ebp
call fcn.00499dc0
add esp, 0xc
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x118]
push eax
push esi
push ebx
push ebp
call fcn.004c9b50
push esi
call dword [0x50b0e0]
add esp, 0x18
cmp byte [esp + 0x72], 0
jne case.0x4c8ed5.7
movzx ebx, byte [esp + 0x71]
lea eax, [ebx - 1]
cmp eax, 0x1d
ja case.0x4c8ed5.7
movzx eax, byte [eax + 0x4c963c]
jmp dword [eax*4 + 0x4c9614]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
sub eax, ecx
cmp eax, 1
je 0x4c8ef2
xor esi, esi
jmp 0x4c92d7
cmp byte [ecx], 0
mov eax, 0x4f7ee0
mov ecx, 0x4f7ee8
cmove eax, ecx
push eax
call dword [0x50b0e8]
add esp, 4
mov esi, eax
jmp 0x4c92d7
mov esi, dword [esp + 0x6c]
mov eax, esi
mov edx, dword [esp + 0x68]
sub eax, edx
jne 0x4c8f28
xor esi, esi
jmp 0x4c92d7
cmp eax, 4
jbe 0x4c8f3e
push esi
push edx
call fcn.004cb1e0
add esp, 8
mov esi, eax
jmp 0x4c92d7
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x4c8f44
push ecx
cmp ecx, 0xa
mov eax, 0x501358
mov ecx, 0x501c2b
cmovb eax, ecx
push eax
push str._s_lx
call fcn.0049cd40
add esp, 0xc
mov esi, eax
jmp 0x4c92d7
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
inc eax
cmp eax, ecx
jbe 0x4c8f8b
xor esi, esi
jmp 0x4c92d7
push ecx
push eax
call fcn.004cb1e0
add esp, 8
mov esi, eax
jmp 0x4c92d7
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.004cb1e0
add esp, 8
mov esi, eax
jmp 0x4c92d7
push 0x501c2b
call dword [0x50b0e8]
add esp, 4
mov esi, eax
jmp 0x4c92d7
push 1
push dword [esp + 0x70]
push dword [esp + 0x70]
call fcn.004c99e0
add esp, 0xc
mov esi, eax
jmp 0x4c92d7
mov esi, dword [esp + 0x68]
mov ecx, esi
mov edx, dword [esp + 0x6c]
cmp ecx, edx
jae 0x4c8ffd
nop
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c8ffd
inc ecx
cmp ecx, edx
jb 0x4c8ff0
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x4c9015
sub eax, 2
je 0x4c901a
xor esi, esi
jmp 0x4c92d7
mov edi, 0x501398
cmp ecx, edx
jb 0x4c9025
xor esi, esi
jmp 0x4c92d7
cmp byte [ecx], 0x5a
jne 0x4c9036
mov ecx, 0x50139c
mov edx, 0x50139f
jmp 0x4c9037
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.0049cd40
add esp, 0x28
mov esi, eax
jmp 0x4c92d7
mov ebp, dword [esp + 0x68]
mov edi, 0x501c2b
mov esi, dword [esp + 0x6c]
mov ecx, ebp
cmp ecx, esi
jae 0x4c908d
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4c908d
inc ecx
cmp ecx, esi
jb 0x4c9080
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x4c90bb
sub eax, 1
je 0x4c90b6
sub eax, 1
je 0x4c90af
xor esi, esi
jmp 0x4c92d3
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x4c90bd
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, esi
jae 0x4c911c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x4c90d1
cmp bl, 0x2c
jne 0x4c9101
inc ecx
inc eax
cmp eax, esi
jae 0x4c90e3
mov dl, byte [eax]
cmp dl, 0x30
jl 0x4c90e3
cmp dl, 0x39
jle 0x4c90d2
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x4c9101
lea edi, [ecx - 1]
add edi, edx
cmp byte [edi], 0x30
jne 0x4c90fc
dec edi
sub edx, 1
jne 0x4c90f1
mov edi, 0x501c2b
cmp eax, esi
jae 0x4c911c
cmp byte [eax], 0x5a
jne 0x4c9116
mov eax, 0x501364
mov esi, 0x501368
jmp 0x4c911c
mov edi, 0x501dc4
inc eax
push eax
sub esi, eax
test edx, edx
push esi
push edi
push ecx
push edx
mov ecx, 0x501c2b
mov eax, 0x501c48
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.0049cd40
add esp, 0x38
mov esi, eax
jmp 0x4c92d3
mov edi, dword [esp + 0x6c]
lea eax, [ebx - 0xc]
mov esi, dword [esp + 0x68]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x14], ecx
cmp eax, 0x12
ja case.0x4c9188.13
movzx eax, byte [eax + 0x4c966c]
jmp dword [eax*4 + 0x4c965c]
mov ecx, 2
jmp 0x4c919b
mov ecx, 4
mov dword [esp + 0x14], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x4c9188.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x4c9188.13
lea eax, [eax*4 + 1]
push eax
call dword [0x50b0dc]
mov ebp, eax
add esp, 4
test ebp, ebp
je case.0x4c9188.13
cmp ebx, 0xc
jne 0x4c91f4
test edi, edi
je 0x4c91eb
push edi
push esi
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebp], 0
jmp 0x4c92cc
xor edi, edi
cmp esi, dword [esp + 0x6c]
jae 0x4c91eb
nop dword [eax]
mov eax, dword [esp + 0x14]
xor ecx, ecx
sub eax, 2
je 0x4c921f
sub eax, 2
jne 0x4c9228
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 ebx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x4c92a6
cmp ecx, 0x800
jb 0x4c928e
cmp ecx, 0x10000
jb 0x4c9272
cmp ecx, 0x200000
jae 0x4c92bd
mov al, cl
lea edx, [edi + ebp]
and al, 0x3f
or ecx, 0x400000
or al, 0x80
mov ebx, 3
mov byte [edx + 3], al
shr ecx, 6
jmp 0x4c927a
lea edx, [edi + ebp]
mov ebx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edx + 2], al
jmp 0x4c9291
lea edx, [edi + ebp]
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc ebx
mov byte [edx + 1], al
jmp 0x4c92a9
lea edx, [edi + ebp]
add edi, ebx
mov byte [edx], cl
cmp esi, dword [esp + 0x6c]
jb 0x4c9200
mov byte [edi + ebp], 0
jmp 0x4c92cc
push ebp
call dword [0x50b0e0]
add esp, 4
or edi, 0xffffffff
xor ebp, ebp
xor esi, esi
test edi, edi
cmovns esi, ebp
mov ebp, dword [esp + 0x18]
test esi, esi
je case.0x4c8ed5.7
cmp byte [ebp + 0x89c], 0
mov edi, dword [esp + 0x12c]
je 0x4c92ff
push esi
push str.Signature
push edi
push ebp
call fcn.00494a40
add esp, 0x10
test edi, edi
jne 0x4c9312
push esi
push str.___Signature:__s_n
push ebp
call fcn.00499dc0
add esp, 0xc
push esi
call dword [0x50b0e0]
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 ebp
call fcn.004affb0
add esp, 0x18
test eax, eax
jne 0x4c936d
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 0x3f]
add ecx, 0x37
shr eax, 6
add eax, ecx
push eax
call dword [0x50b0dc]
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4c9378
push dword [esp + 0x20]
call dword [0x50b0e0]
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 0x4c93d6
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x4c93d5
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x4c93d0
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x4c93cb
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x4c9382
jmp 0x4c93d6
add esi, 3
jmp 0x4c93d6
add esi, 2
jmp 0x4c93d6
inc esi
mov byte [esi + ebx], 0xa
lea edi, [esi + 1]
xor esi, esi
cmp dword [esp + 0x1c], esi
jbe 0x4c9403
mov eax, dword [esp + 0x20]
add eax, esi
push eax
lea eax, [ebx + edi]
push eax
call fcn.004c9ac0
add esi, 0x40
add esp, 8
add edi, eax
cmp esi, dword [esp + 0x1c]
jb 0x4c93e5
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 0x4c9464
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x4c9463
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x4c945e
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x4c9459
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x4c9410
jmp 0x4c9464
add esi, 3
jmp 0x4c9464
add esi, 2
jmp 0x4c9464
inc esi
mov byte [esi + ebp], 0xa
lea eax, [esi + ebx]
mov byte [eax + edi + 1], 0
push dword [esp + 0x20]
call dword [0x50b0e0]
mov esi, dword [esp + 0x1c]
add esp, 4
cmp byte [esi + 0x89c], 0
je 0x4c94a0
push ebx
push str.Cert
push dword [esp + 0x134]
push esi
call fcn.00494a40
add esp, 0x10
cmp dword [esp + 0x12c], 0
jne 0x4c94b9
push ebx
push 0x4f7bfc
push esi
call fcn.00499dc0
add esp, 0xc
push ebx
call dword [0x50b0e0]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret