Function at 0x41e670
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a5ee7
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x5a8c
call fcn.00465b30
mov eax, dword [0x4d8b40]
xor eax, esp
mov dword [esp + 0x5a88], eax
push ebx
push esi
push edi
mov eax, dword [0x4d8b40]
xor eax, esp
push eax
lea eax, [esp + 0x5aa0]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, edx
lea esi, [ebx + 0x6c]
push edi
mov ecx, esi
mov dword [esp + 0x54], ebx
call fcn.00402990
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e6e2
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x5aa8], 0
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e717
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x5aa8], 1
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e749
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x5aa8], 2
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e77b
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x5aa8], 3
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e7ad
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0x5aa8], 4
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e7df
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x5aa8], 5
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e811
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x5aa8], 6
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e843
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
push 0x27ff
lea ecx, [esp + 0x3299]
push 0
mov byte [esp + 0x5ab0], 7
push ecx
mov byte [esp + 0x32a0], 0
call fcn.00465b60
add esp, 0xc
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41e894
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
push str.InstallCert
lea ecx, [esp + 0x38]
mov byte [esp + 0x5aac], 8
call fcn.00402670
lea ecx, [esp + 0x54]
mov byte [esp + 0x5aa8], 9
call fcn.0045593a
push str.reqXMLData
lea ecx, [esp + 0x34]
mov byte [esp + 0x5aac], 0xa
call fcn.00402670
mov byte [esp + 0x5aa8], 0xb
mov ecx, dword [ebx + 0x28]
push ecx
lea edx, [esp + 0x1c]
push str._cstebankno__s__cstebankno_
push edx
call fcn.00407690
mov eax, dword [ebx + 0x64]
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
push str._certrefkey__s__certrefkey_
push ecx
call fcn.00407690
mov edx, dword [ebx + 0x68]
add esp, 0xc
push edx
lea eax, [esp + 0x20]
push str._certauthkey__s__certauthkey_
push eax
call fcn.00407690
mov ecx, dword [esi]
add esp, 0xc
push ecx
push str._pkcs10__s__pkcs10_
push edi
call fcn.00407690
mov edx, dword [ebx + 0x54]
add esp, 0xc
push edx
lea eax, [esp + 0x2c]
push str._cspname__s__cspname_
push eax
call fcn.00407690
add esp, 0xc
lea esi, [ebx + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ecx, word [ebx + 0x24]
movzx edx, word [ebx + 0x22]
movzx eax, word [ebx + 0x20]
push ecx
movzx ecx, word [ebx + 0x1e]
push edx
movzx edx, word [ebx + 0x1a]
push eax
movzx eax, word [esi]
push ecx
push edx
push eax
lea ecx, [esp + 0x54]
push str._04d_02d_02d_02d_02d_02d
push ecx
call fcn.00407690
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esp + 0x48]
push str._submittime__s__submittime_
push eax
call fcn.00407690
add esp, 0x2c
cmp dword [ebx + 0x84], 0
je 0x41e9f8
mov ecx, dword [ebx + 0x2c]
push ecx
lea edx, [esp + 0x30]
push str._userid__s__userid_
push edx
call fcn.00407690
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [edi]
add esp, 0xc
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
lea ecx, [esp + 0x30]
push str.__xml_version_1.0__encoding_gb2312____CSRCBKRQ__s_s_s_s_s_s_s__CSRCBKRQ_
push ecx
call fcn.00407690
add esp, 0x24
push str.https:__www.csebank.com:454_pb_MakeCbCertOperateServlet.do
jmp 0x41ea2b
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [edi]
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
lea edx, [esp + 0x2c]
push str.__xml_version_1.0__encoding_gb2312____CSRCBKRQ__s_s_s_s_s_s__CSRCBKRQ_
push edx
call fcn.00407690
add esp, 0x20
push str.https:__www.csebank.com:454_pb_MakePbCertOperateServlet.do
push ebx
call fcn.00419c30
xor esi, esi
mov dword [esp + 0x44], eax
cmp eax, esi
je 0x41ec14
mov byte [esp + 0x5aa8], 0xa
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ea67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x5aa8], 9
call fcn.00455b17
mov byte [esp + 0x5aa8], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eaa0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eac8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 6
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eaf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eb18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eb40
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eb68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eb90
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ebb8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ebe0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5aa8], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ec0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
jmp 0x41fc64
mov edx, dword [esp + 0x14]
cmp dword [edx - 4], 1
mov byte [esp + 0x154], 0
mov dword [esp + 0x100], esi
mov dword [esp + 0xfc], esi
mov dword [esp + 0xec], 0x67452301
mov dword [esp + 0xf0], 0xefcdab89
mov dword [esp + 0xf4], 0x98badcfe
mov dword [esp + 0xf8], 0x10325476
jle 0x41ec71
mov ecx, dword [edx - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00402790
mov edx, dword [esp + 0x14]
mov eax, edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], 0xf
mov byte [esp + 0x6c], 0
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41ec90
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x70]
call fcn.00402240
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0xd4]
lea esi, [esp + 0xf0]
mov byte [esp + 0x5aac], 0xc
call fcn.00439200
mov esi, 0x10
mov byte [esp + 0x5aa8], 0xe
cmp dword [esp + 0x80], esi
jb 0x41ece7
mov eax, dword [esp + 0x6c]
push eax
call fcn.0043fc36
add esp, 4
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41ed19
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0x5aa8], 0xf
mov eax, dword [esp + 0xd4]
cmp dword [esp + 0xe8], esi
jae 0x41ed48
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0x3c]
push str._signvalue__s__signvalue_
push ecx
call fcn.00407690
add esp, 0xc
cmp dword [ebx + 0x84], 0
je 0x41edb4
mov edx, dword [ebx + 0x2c]
push edx
lea eax, [esp + 0x30]
push str._userid__s__userid_
push eax
call fcn.00407690
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add esp, 0xc
push ecx
mov ecx, dword [edi]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
push edx
lea eax, [esp + 0x34]
push str.__xml_version_1.0__encoding_gb2312____CSRCBKRQ__s_s_s_s_s_s_s_s__CSRCBKRQ_
push eax
call fcn.00407690
add esp, 0x28
jmp 0x41ede7
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [edi]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push eax
push ecx
lea edx, [esp + 0x30]
push str.__xml_version_1.0__encoding_gb2312____CSRCBKRQ__s_s_s_s_s_s_s__CSRCBKRQ_
push edx
call fcn.00407690
add esp, 0x24
push 0x1063
lea eax, [esp + 0x11c9]
push 0
push eax
mov byte [esp + 0x11d0], 0
call fcn.00465b60
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp dword [eax - 4], 1
mov dword [esp + 0x40], 0
jle 0x41ee25
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00402790
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x40]
push edx
push eax
lea ecx, [esp + 0x11cc]
call fcn.00438440
push 0x1063
lea ecx, [esp + 0x169]
push 0
push ecx
mov byte [esp + 0x170], 0
call fcn.00465b60
mov eax, dword [esp + 0x54]
add esp, 0x14
lea edi, [esp + 0x11c4]
lea ecx, [esp + 0x15c]
call fcn.004382d0
lea eax, [esp + 0x15c]
lea edx, [eax + 1]
jmp 0x41ee80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41ee80
sub eax, edx
push eax
lea edx, [esp + 0x160]
push edx
lea ecx, [esp + 0x38]
call fcn.00407720
mov eax, dword [esp + 0x30]
cmp dword [eax - 4], 1
mov esi, dword [eax - 0xc]
jle 0x41eeb8
mov eax, esi
push eax
lea ecx, [esp + 0x34]
call fcn.00402790
mov eax, dword [esp + 0x30]
push esi
push eax
push ebx
call fcn.00419f20
mov edi, eax
test edi, edi
je 0x41f104
mov esi, ebx
call fcn.0041a110
mov byte [esp + 0x5aa8], 0xe
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41eef9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xe8], 0x10
jb 0x41ef13
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.0043fc36
add esp, 4
mov byte [esp + 0x5aa8], 0xa
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0xe8], 0xf
mov dword [esp + 0xe4], 0
mov byte [esp + 0xd4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41ef59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x5aa8], 9
call fcn.00455b17
mov byte [esp + 0x5aa8], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ef92
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41efba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 6
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41efe2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f00a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f032
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f05a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f082
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f0aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f0d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5aa8], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f0fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x41fc64
push 0x2800
lea ecx, [esp + 0x3298]
push 0
push ecx
call fcn.00465b60
add esp, 0xc
push ebx
lea edx, [esp + 0x3298]
call fcn.0041a070
lea edx, [esp + 0x3294]
push edx
lea ecx, [esp + 0x44]
mov esi, eax
call fcn.00402670
mov byte [esp + 0x5aa8], 0x10
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00407720
mov byte [esp + 0x5aa8], 0xf
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f17b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
jg 0x41f104
mov esi, ebx
call fcn.0041a110
push 0x1063
lea ecx, [esp + 0x2231]
push 0
push ecx
mov byte [esp + 0x2238], 0
call fcn.00465b60
add esp, 0xc
push 0x1063
lea edx, [esp + 0x11c9]
push 0
push edx
mov byte [esp + 0x11d0], 0
call fcn.00465b60
mov esi, dword [esp + 0x1c]
mov edi, dword [esi - 0xc]
add esp, 0xc
cmp dword [esi - 4], 1
jle 0x41f1e1
mov eax, edi
push eax
lea ecx, [esp + 0x14]
call fcn.00402790
mov esi, dword [esp + 0x10]
push edi
mov eax, esi
lea ebx, [esp + 0x11c8]
call fcn.00438320
mov eax, dword [esi - 0xc]
cdq
sub eax, edx
add esp, 4
sar eax, 1
push eax
mov ecx, ebx
push ecx
lea ecx, [esp + 0x2234]
call fcn.00438650
lea eax, [esp + 0x2234]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41f218
sub eax, edx
push eax
lea edx, [esp + 0x2230]
push edx
lea ecx, [esp + 0x18]
call fcn.00402900
lea edi, [esp + 0x4c]
call fcn.004207d0
mov byte [esp + 0x5aa8], 0x11
mov eax, dword [esp + 0x10]
cmp dword [eax - 4], 1
jle 0x41f25b
mov eax, dword [eax - 0xc]
push eax
lea ecx, [esp + 0x14]
call fcn.00402790
mov ebx, dword [esp + 0x10]
mov edi, str.recv_decrypt:
lea esi, [esp + 0x4c]
call fcn.00420a50
mov ecx, ebx
cmp dword [ecx - 0xc], 0
jle 0x41f294
mov edx, ebx
push 0x3c
push edx
call fcn.00461651
add esp, 8
test eax, eax
je 0x41f294
sub eax, ebx
js 0x41f294
lea ecx, [esp + 0x10]
push ecx
call fcn.0041fc90
lea edx, [esp + 0x84]
push edx
call fcn.00421eb0
mov byte [esp + 0x5aa8], 0x12
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41f2c3
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x48], eax
mov byte [esp + 0x5aa8], 0x13
call fcn.0044dc0d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41f2f5
push 0x80004005
call fcn.00402ae0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x44], edi
mov byte [esp + 0x5aa8], 0x14
mov eax, dword [esp + 0x10]
cmp dword [eax - 4], 1
jle 0x41f324
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00402790
mov edx, dword [esp + 0x10]
push 0
push 0
push edx
lea ecx, [esp + 0x90]
call fcn.004232d0
mov esi, str.CSRCBKRP
lea eax, [esp + 0x84]
call fcn.004218d0
mov ebx, eax
test ebx, ebx
jne 0x41f61d
lea eax, [edi - 0x10]
mov byte [esp + 0x5aa8], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f378
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0x12
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f3a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0x11
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TiXmlDocument.0
cmp eax, 0x4e078c
je 0x41f3ca
push eax
call fcn.0043fc36
add esp, 4
lea ecx, [esp + 0x84]
call fcn.00421770
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x41f3e7
push eax
call fcn.00461e9d
add esp, 4
mov byte [esp + 0x5aa8], 0xe
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f40f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xe8], 0x10
jb 0x41f429
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.0043fc36
add esp, 4
mov byte [esp + 0x5aa8], 0xa
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0xe8], 0xf
mov dword [esp + 0xe4], 0
mov byte [esp + 0xd4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41f46f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x5aa8], 9
call fcn.00455b17
mov byte [esp + 0x5aa8], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f4a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f4d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 6
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f4f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f520
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f548
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f570
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f598
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f5c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f5e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5aa8], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f613
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0xfffffff3
jmp 0x41fc64
mov esi, str.returncode
mov eax, ebx
call fcn.004218d0
mov edi, eax
test edi, edi
je 0x41f653
nop
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x41f80e
mov esi, str.returncode
mov eax, edi
call fcn.00421920
mov edi, eax
test edi, edi
jne 0x41f630
xor eax, eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x41f99c
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
test eax, eax
je 0x41f99c
mov eax, dword [eax + 0x20]
add eax, 8
je 0x41f99c
push eax
lea ecx, [esp + 0x4c]
push 0x4c2db4
push ecx
call fcn.00407690
add esp, 0xc
push str.000000
lea ecx, [esp + 0x4c]
call fcn.00402360
test eax, eax
mov eax, ebx
je 0x41f82c
mov esi, str.returnmessage
call fcn.004218d0
mov edi, eax
test edi, edi
je 0x41f6d9
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x41f81c
mov esi, str.returnmessage
mov eax, edi
call fcn.00421920
mov edi, eax
test edi, edi
jne 0x41f6b6
xor esi, esi
mov eax, esi
call fcn.00421e90
mov edi, eax
test esi, esi
je 0x41f72f
test edi, edi
je 0x41f72f
lea ecx, [esp + 0x40]
call fcn.00402b40
push edi
lea ecx, [esp + 0x44]
push 0x4c2db4
push ecx
mov byte [esp + 0x5ab4], 0x15
call fcn.00407690
mov edx, dword [esp + 0x4c]
add esp, 0xc
push 0
push 0
push edx
call fcn.004525b1
lea ecx, [esp + 0x40]
mov byte [esp + 0x5aa8], 0x14
call fcn.00402b20
push str.Retfail
lea ecx, [esp + 0x38]
call fcn.00402630
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00415f10
lea ecx, [esp + 0x44]
call fcn.00402b20
lea ecx, [esp + 0x48]
call fcn.00402b20
lea ecx, [esp + 0x84]
mov byte [esp + 0x5aa8], 0x11
call fcn.004192b0
lea esi, [esp + 0x4c]
call fcn.00420990
lea ecx, [esp + 0x38]
call fcn.00402b20
lea ecx, [esp + 0xd0]
call fcn.00401db0
lea ecx, [esp + 0x30]
call fcn.00402b20
lea ecx, [esp + 0x54]
mov byte [esp + 0x5aa8], 9
call fcn.00455b17
lea ecx, [esp + 0x34]
call fcn.00402b20
lea ecx, [esp + 0x10]
call fcn.00402b20
lea ecx, [esp + 0x24]
call fcn.00402b20
lea ecx, [esp + 0x2c]
call fcn.00402b20
lea ecx, [esp + 0x14]
call fcn.00402b20
lea ecx, [esp + 0x3c]
call fcn.00402b20
lea ecx, [esp + 0x28]
call fcn.00402b20
lea ecx, [esp + 0x1c]
call fcn.00402b20
lea ecx, [esp + 0x20]
call fcn.00402b20
lea ecx, [esp + 0x18]
call fcn.00402b20
mov eax, 0xffffffed
jmp 0x41fc64
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
jmp 0x41f655
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov esi, eax
jmp 0x41f6db
mov esi, str.certsignpem
call fcn.004218d0
mov edi, eax
test edi, edi
je 0x41f8dd
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x41f861
mov esi, str.certsignpem
mov eax, edi
call fcn.00421920
mov edi, eax
test edi, edi
jne 0x41f840
jmp 0x41f8dd
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
je 0x41f8dd
call fcn.00421e90
test eax, eax
je 0x41f8dd
mov esi, dword [esp + 0x50]
push eax
add esi, 0x70
push 0x4c2db4
push esi
mov dword [esp + 0x5c], esi
call fcn.00407690
add esp, 0xc
mov ecx, esi
call fcn.0041fd80
mov ebx, eax
mov edi, str.certsignpem:
lea esi, [esp + 0x4c]
call fcn.00420a50
mov ecx, dword [esp + 0x5c]
push 0x4c1694
push ecx
lea ecx, [esp + 0x5c]
call fcn.00455c62
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x5c]
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.00455c10
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.00415f10
lea ecx, [esp + 0x44]
call fcn.00402b20
lea ecx, [esp + 0x48]
call fcn.00402b20
lea ecx, [esp + 0x84]
mov byte [esp + 0x5aa8], 0x11
call fcn.004192b0
lea esi, [esp + 0x4c]
call fcn.00420990
lea ecx, [esp + 0x38]
call fcn.00402b20
lea ecx, [esp + 0xd0]
call fcn.00401db0
lea ecx, [esp + 0x30]
call fcn.00402b20
lea ecx, [esp + 0x54]
mov byte [esp + 0x5aa8], 9
call fcn.00455b17
lea ecx, [esp + 0x34]
call fcn.00402b20
lea ecx, [esp + 0x10]
call fcn.00402b20
lea ecx, [esp + 0x24]
call fcn.00402b20
lea ecx, [esp + 0x2c]
call fcn.00402b20
lea ecx, [esp + 0x14]
call fcn.00402b20
lea ecx, [esp + 0x3c]
call fcn.00402b20
lea ecx, [esp + 0x28]
call fcn.00402b20
lea ecx, [esp + 0x1c]
call fcn.00402b20
lea ecx, [esp + 0x20]
call fcn.00402b20
lea ecx, [esp + 0x18]
call fcn.00402b20
xor eax, eax
jmp 0x41fc64
mov byte [esp + 0x5aa8], 0x13
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f9c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0x12
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41f9ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0x11
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x84], vtable.TiXmlDocument.0
cmp eax, 0x4e078c
je 0x41fa16
push eax
call fcn.0043fc36
add esp, 4
lea ecx, [esp + 0x84]
call fcn.00421770
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x41fa33
push eax
call fcn.00461e9d
add esp, 4
mov byte [esp + 0x5aa8], 0xe
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fa5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xe8], 0x10
jb 0x41fa75
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.0043fc36
add esp, 4
mov byte [esp + 0x5aa8], 0xa
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0xe8], 0xf
mov dword [esp + 0xe4], 0
mov byte [esp + 0xd4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41fabb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x5aa8], 9
call fcn.00455b17
mov byte [esp + 0x5aa8], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41faf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb1c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 6
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fb94
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fbbc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 2
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fbe4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fc0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa8], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fc34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5aa8], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fc5f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0xfffffff6
mov ecx, dword [esp + 0x5aa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5a88]
xor ecx, esp
call fcn.0045f97b
mov esp, ebp
pop ebp
ret