Function at 0x41d090
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x56f747
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x5a84
call fcn.00542140
mov eax, dword [0x5d7f50]
xor eax, esp
mov dword [esp + 0x5a80], eax
push ebx
push esi
push edi
mov eax, dword [0x5d7f50]
xor eax, esp
push eax
lea eax, [esp + 0x5a98]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, edx
push ebx
lea ecx, [esi + 0x6c]
mov dword [esp + 0x4c], esi
call fcn.00402ac0
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d100
push 0x80004005
call fcn.00402bc0
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 + 0x5aa0], 0
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d135
push 0x80004005
call fcn.00402bc0
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 + 0x5aa0], 1
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d167
push 0x80004005
call fcn.00402bc0
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 + 0x5aa0], 2
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d199
push 0x80004005
call fcn.00402bc0
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 + 0x5aa0], 3
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d1cb
push 0x80004005
call fcn.00402bc0
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 + 0x5aa0], 4
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d1fd
push 0x80004005
call fcn.00402bc0
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 + 0x5aa0], 5
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d22f
push 0x80004005
call fcn.00402bc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0x5aa0], 6
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d261
push 0x80004005
call fcn.00402bc0
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 + 0x3291]
push 0
mov byte [esp + 0x5aa8], 7
push ecx
mov byte [esp + 0x3298], 0
call fcn.00543bb0
add esp, 0xc
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d2b2
push 0x80004005
call fcn.00402bc0
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 + 0x5aa4], 8
call fcn.00402770
lea ecx, [esp + 0x50]
mov byte [esp + 0x5aa0], 9
call fcn.00455209
push str.reqXMLData
lea ecx, [esp + 0x30]
mov byte [esp + 0x5aa4], 0xa
call fcn.00402770
mov byte [esp + 0x5aa0], 0xb
mov ecx, dword [esi + 0x28]
push ecx
lea edx, [esp + 0x1c]
push str._cstebankno__s__cstebankno_
push edx
call fcn.004078c0
mov eax, dword [esi + 0x64]
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
push str._certrefkey__s__certrefkey_
push ecx
call fcn.004078c0
mov edx, dword [esi + 0x68]
add esp, 0xc
push edx
lea eax, [esp + 0x20]
push str._certauthkey__s__certauthkey_
push eax
call fcn.004078c0
mov ecx, dword [esi + 0x6c]
add esp, 0xc
push ecx
push str._pkcs10__s__pkcs10_
push ebx
call fcn.004078c0
mov edx, dword [esi + 0x54]
add esp, 0xc
push edx
lea eax, [esp + 0x2c]
push str._cspname__s__cspname_
push eax
call fcn.004078c0
add esp, 0xc
lea edi, [esi + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ecx, word [esi + 0x24]
movzx edx, word [esi + 0x22]
movzx eax, word [esi + 0x20]
push ecx
movzx ecx, word [esi + 0x1e]
push edx
movzx edx, word [esi + 0x1a]
push eax
movzx eax, word [edi]
push ecx
push edx
push eax
lea ecx, [esp + 0x54]
push str._04d_02d_02d_02d_02d_02d
push ecx
call fcn.004078c0
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esp + 0x48]
push str._submittime__s__submittime_
push eax
call fcn.004078c0
add esp, 0x2c
cmp dword [esi + 0x84], 0
je 0x41d417
mov ecx, dword [esi + 0x2c]
push ecx
lea edx, [esp + 0x34]
push str._userid__s__userid_
push edx
call fcn.004078c0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [ebx]
add esp, 0xc
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x3c]
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.004078c0
add esp, 0x24
push str.https:__www.csebank.com:454_pb_MakeCbCertOperateServlet.do
jmp 0x41d44a
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx]
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.004078c0
add esp, 0x20
push str.https:__www.csebank.com:454_pb_MakePbCertOperateServlet.do
push esi
call fcn.00418840
mov edi, eax
xor eax, eax
cmp edi, eax
je 0x41d62f
mov byte [esp + 0x5aa0], 0xa
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 0x41d484
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x5aa0], 9
call fcn.00455447
mov byte [esp + 0x5aa0], 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 0x41d4bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41d4e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41d50d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 5
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 0x41d535
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41d55d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41d585
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41d5ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d5d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d5fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5aa0], 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 0x41d628
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x41e514
mov edx, dword [esp + 0x14]
cmp dword [edx - 4], 1
mov byte [esp + 0x14c], al
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xe4], 0x67452301
mov dword [esp + 0xe8], 0xefcdab89
mov dword [esp + 0xec], 0x98badcfe
mov dword [esp + 0xf0], 0x10325476
jle 0x41d68b
mov ecx, dword [edx - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00402890
mov edx, dword [esp + 0x14]
mov eax, edx
mov dword [esp + 0xdc], 0xf
mov dword [esp + 0xd8], 0
mov byte [esp + 0xc8], 0
lea edi, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d6b0
sub eax, edi
push eax
push edx
lea ecx, [esp + 0xd0]
call fcn.00402320
lea edx, [esp + 0xc8]
push edx
lea edx, [esp + 0xb0]
lea ecx, [esp + 0xe8]
mov byte [esp + 0x5aa4], 0xc
call fcn.00436560
mov edi, 0x10
mov byte [esp + 0x5aa0], 0xe
cmp dword [esp + 0xdc], edi
jb 0x41d710
mov eax, dword [esp + 0xc8]
push eax
call fcn.0043cd76
add esp, 4
mov dword [esp + 0xdc], 0xf
mov dword [esp + 0xd8], 0
mov byte [esp + 0xc8], 0
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41d748
push 0x80004005
call fcn.00402bc0
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 + 0x5aa0], 0xf
mov eax, dword [esp + 0xac]
cmp dword [esp + 0xc0], edi
jae 0x41d777
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x3c]
push str._signvalue__s__signvalue_
push ecx
call fcn.004078c0
add esp, 0xc
cmp dword [esi + 0x84], 0
je 0x41d7e3
mov edx, dword [esi + 0x2c]
push edx
lea eax, [esp + 0x34]
push str._userid__s__userid_
push eax
call fcn.004078c0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add esp, 0xc
push ecx
mov ecx, dword [ebx]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x40]
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.004078c0
add esp, 0x28
jmp 0x41d816
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [ebx]
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.004078c0
add esp, 0x24
push 0x1063
lea eax, [esp + 0x11c1]
push 0
push eax
mov byte [esp + 0x11c8], 0
call fcn.00543bb0
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp dword [eax - 4], 1
mov dword [esp + 0x40], 0
jle 0x41d858
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00402890
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x44]
lea edx, [esp + 0x11c0]
call fcn.004357c0
add esp, 4
push 0x1063
lea edx, [esp + 0x159]
push 0
push edx
mov byte [esp + 0x160], 0
call fcn.00543bb0
mov eax, dword [esp + 0x4c]
add esp, 0xc
lea edi, [esp + 0x11bc]
lea ecx, [esp + 0x154]
call fcn.00435660
lea eax, [esp + 0x154]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d8b0
sub eax, edx
push eax
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x34]
call fcn.004078f0
mov eax, dword [esp + 0x2c]
mov edi, dword [eax - 0xc]
mov ebx, 1
cmp dword [eax - 4], ebx
jle 0x41d8ea
push edi
lea ecx, [esp + 0x30]
call fcn.00402890
mov eax, dword [esp + 0x2c]
push edi
push eax
push esi
call fcn.00418b30
mov edi, eax
test edi, edi
je 0x41dac0
call fcn.00418d20
mov byte [esp + 0x5aa0], 0xe
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d929
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xc0], 0x10
jb 0x41d943
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0043cd76
add esp, 4
mov byte [esp + 0x5aa0], 0xa
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d989
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x5aa0], 9
call fcn.00455447
mov byte [esp + 0x5aa0], 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 0x41d9c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41d9ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41da12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 5
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 0x41da3a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41da62
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41da8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41dab2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], bl
jmp 0x41d5b5
push 0x2800
lea ecx, [esp + 0x3290]
push 0
push ecx
call fcn.00543bb0
add esp, 0xc
push esi
lea edx, [esp + 0x3290]
call fcn.00418c80
lea edx, [esp + 0x328c]
push edx
lea ecx, [esp + 0x44]
mov edi, eax
call fcn.00402770
mov byte [esp + 0x5aa0], 0x10
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.004078f0
mov byte [esp + 0x5aa0], 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 0x41db37
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jg 0x41dac0
call fcn.00418d20
push 0x1063
lea ecx, [esp + 0x2229]
push 0
push ecx
mov byte [esp + 0x2230], 0
call fcn.00543bb0
add esp, 0xc
push 0x1063
lea edx, [esp + 0x11c1]
push 0
push edx
mov byte [esp + 0x11c8], 0
call fcn.00543bb0
mov esi, dword [esp + 0x1c]
mov edi, dword [esi - 0xc]
add esp, 0xc
cmp dword [esi - 4], ebx
jle 0x41db98
push edi
lea ecx, [esp + 0x14]
call fcn.00402890
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x11bc]
push ecx
mov ecx, edi
mov eax, esi
call fcn.004356b0
mov eax, dword [esi - 0xc]
cdq
sub eax, edx
sar eax, 1
add esp, 4
push eax
lea edx, [esp + 0x2228]
lea ecx, [esp + 0x11c0]
call fcn.004359b0
lea eax, [esp + 0x2228]
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41dbd5
sub eax, edx
push eax
lea edx, [esp + 0x2228]
push edx
lea ecx, [esp + 0x18]
call fcn.00402a20
lea edi, [esp + 0x44]
call fcn.0041f1c0
mov byte [esp + 0x5aa0], 0x11
mov eax, dword [esp + 0x10]
cmp dword [eax - 4], ebx
jle 0x41dc17
mov eax, dword [eax - 0xc]
push eax
lea ecx, [esp + 0x14]
call fcn.00402890
mov ebx, dword [esp + 0x10]
mov edi, str.recv_decrypt:
lea esi, [esp + 0x44]
call fcn.0041f440
mov ecx, ebx
cmp dword [ecx - 0xc], 0
mov esi, ebx
jle 0x41dc56
push 0x3c
push esi
call fcn.0053e8af
add esp, 8
test eax, eax
je 0x41dc56
sub eax, esi
js 0x41dc56
push eax
push 0
lea ecx, [esp + 0x18]
call fcn.0041e540
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x64]
push edx
call fcn.00420b70
mov byte [esp + 0x5aa0], 0x12
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41dc82
push 0x80004005
call fcn.00402bc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x5aa0], 0x13
call fcn.0044b779
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41dcb4
push 0x80004005
call fcn.00402bc0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x40], edi
mov byte [esp + 0x5aa0], 0x14
cmp dword [esi - 4], 1
jle 0x41dcdf
mov ecx, dword [esi - 0xc]
push ecx
lea ecx, [esp + 0x14]
call fcn.00402890
mov edx, dword [esp + 0x10]
push 0
push 0
push edx
lea ecx, [esp + 0x70]
call fcn.00421fb0
mov esi, str.CSRCBKRP
lea eax, [esp + 0x64]
call fcn.00420460
mov esi, eax
test esi, esi
jne 0x41dfa9
lea eax, [edi - 0x10]
mov byte [esp + 0x5aa0], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41dd2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x5aa0], 0x12
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41dd51
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x5aa0], 0x11
call fcn.00417e80
mov eax, dword [esp + 0x44]
test eax, eax
je 0x41dd73
push eax
call fcn.0053ef9a
add esp, 4
mov byte [esp + 0x5aa0], 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 0x41dd9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xc0], 0x10
jb 0x41ddb5
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0043cd76
add esp, 4
mov byte [esp + 0x5aa0], 0xa
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41ddfb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x5aa0], 9
call fcn.00455447
mov byte [esp + 0x5aa0], 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 0x41de34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41de5c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41de84
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 5
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 0x41deac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41ded4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41defc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41df24
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41df4c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41df74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5aa0], 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 0x41df9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0xfffffff3
jmp 0x41e514
mov ecx, str.returncode
mov eax, esi
call fcn.004204b0
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x41e279
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
test eax, eax
je 0x41e279
mov eax, dword [eax + 0x20]
add eax, 8
je 0x41e279
push eax
lea ecx, [esp + 0x50]
push 0x5af0c4
push ecx
call fcn.004078c0
add esp, 0xc
push str.000000
lea ecx, [esp + 0x50]
call fcn.00402460
test eax, eax
mov eax, esi
je 0x41e140
mov ecx, str.returnmessage
call fcn.004204b0
mov esi, eax
call fcn.00420b50
mov edi, eax
test esi, esi
je 0x41e064
test edi, edi
je 0x41e064
lea ecx, [esp + 0x48]
call fcn.00402c50
push edi
lea edx, [esp + 0x4c]
push 0x5af0c4
push edx
mov byte [esp + 0x5aac], 0x15
call fcn.004078c0
mov eax, dword [esp + 0x54]
add esp, 0xc
push 0
push 0
push eax
call fcn.004511de
lea ecx, [esp + 0x48]
mov byte [esp + 0x5aa0], 0x14
call fcn.00402c30
push str.Retfail
lea ecx, [esp + 0x38]
call fcn.00402730
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.00416bf0
lea ecx, [esp + 0x40]
call fcn.00402c30
lea ecx, [esp + 0x4c]
call fcn.00402c30
lea ecx, [esp + 0x64]
mov byte [esp + 0x5aa0], 0x11
call fcn.00417e80
lea esi, [esp + 0x44]
call fcn.0041f380
lea ecx, [esp + 0x38]
call fcn.00402c30
lea ecx, [esp + 0xac]
call fcn.00401ea0
lea ecx, [esp + 0x2c]
call fcn.00402c30
lea ecx, [esp + 0x50]
mov byte [esp + 0x5aa0], 9
call fcn.00455447
lea ecx, [esp + 0x34]
call fcn.00402c30
lea ecx, [esp + 0x10]
call fcn.00402c30
lea ecx, [esp + 0x24]
call fcn.00402c30
lea ecx, [esp + 0x30]
call fcn.00402c30
lea ecx, [esp + 0x14]
call fcn.00402c30
lea ecx, [esp + 0x3c]
call fcn.00402c30
lea ecx, [esp + 0x28]
call fcn.00402c30
lea ecx, [esp + 0x1c]
call fcn.00402c30
lea ecx, [esp + 0x20]
call fcn.00402c30
lea ecx, [esp + 0x18]
call fcn.00402c30
mov eax, 0xffffffed
jmp 0x41e514
mov ecx, str.certsignpem
call fcn.004204b0
test eax, eax
je 0x41e1bd
call fcn.00420b50
test eax, eax
je 0x41e1bd
mov esi, dword [esp + 0x48]
push eax
add esi, 0x70
push 0x5af0c4
push esi
mov dword [esp + 0x54], esi
call fcn.004078c0
add esp, 0xc
mov ecx, esi
call fcn.0041e6d0
mov ebx, eax
mov edi, str.certsignpem:
lea esi, [esp + 0x44]
call fcn.0041f440
mov eax, dword [esp + 0x58]
push 0x5ad92c
push eax
lea ecx, [esp + 0x58]
call fcn.004555f2
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.004555a0
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00416bf0
lea ecx, [esp + 0x40]
call fcn.00402c30
lea ecx, [esp + 0x4c]
call fcn.00402c30
lea ecx, [esp + 0x64]
mov byte [esp + 0x5aa0], 0x11
call fcn.00417e80
lea esi, [esp + 0x44]
call fcn.0041f380
lea ecx, [esp + 0x38]
call fcn.00402c30
lea ecx, [esp + 0xac]
call fcn.00401ea0
lea ecx, [esp + 0x2c]
call fcn.00402c30
lea ecx, [esp + 0x50]
mov byte [esp + 0x5aa0], 9
call fcn.00455447
lea ecx, [esp + 0x34]
call fcn.00402c30
lea ecx, [esp + 0x10]
call fcn.00402c30
lea ecx, [esp + 0x24]
call fcn.00402c30
lea ecx, [esp + 0x30]
call fcn.00402c30
lea ecx, [esp + 0x14]
call fcn.00402c30
lea ecx, [esp + 0x3c]
call fcn.00402c30
lea ecx, [esp + 0x28]
call fcn.00402c30
lea ecx, [esp + 0x1c]
call fcn.00402c30
lea ecx, [esp + 0x20]
call fcn.00402c30
lea ecx, [esp + 0x18]
call fcn.00402c30
xor eax, eax
jmp 0x41e514
lea eax, [edi - 0x10]
mov byte [esp + 0x5aa0], 0x13
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e29d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x5aa0], 0x12
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41e2c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x5aa0], 0x11
call fcn.00417e80
mov eax, dword [esp + 0x44]
test eax, eax
je 0x41e2e3
push eax
call fcn.0053ef9a
add esp, 4
mov byte [esp + 0x5aa0], 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 0x41e30b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0xc0], 0x10
jb 0x41e325
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0043cd76
add esp, 4
mov byte [esp + 0x5aa0], 0xa
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e36b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x5aa0], 9
call fcn.00455447
mov byte [esp + 0x5aa0], 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 0x41e3a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41e3cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41e3f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 5
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 0x41e41c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41e444
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41e46c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41e494
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41e4bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x5aa0], 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 0x41e4e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x5aa0], 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 0x41e50f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0xfffffff6
mov ecx, dword [esp + 0x5a98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5a80]
xor ecx, esp
call fcn.0053c99c
mov esp, ebp
pop ebp
ret