Function at 0x696d3cd0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x13c
mov eax, dword [esp + 0x150]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5f], 0x53444345
mov edi, dword [eax + 4]
mov dword [esp + 0x63], 0x45442b41
mov dword [esp + 0x67], 0x20202052
mov dword [esp + 0x6b], 0x20202020
mov byte [esp + 0x6f], 0
test edi, edi
je 0x696d41c8
mov esi, dword [esp + 0x158]
test esi, esi
je 0x696d4200
mov ebx, dword [esp + 0x154]
test ebx, ebx
je 0x696d4230
mov ecx, dword [esp + 0x15c]
test ecx, ecx
je 0x696d4260
mov eax, dword [esp + 0x160]
mov edx, dword [esp + 0x15c]
lea ecx, [esp + 0x58]
test eax, eax
mov eax, 0x696d0ae0
cmovne eax, dword [esp + 0x160]
mov dword [esp + 0x160], eax
lea eax, [esp + 0xb0]
call fcn.696c8f20
mov edx, dword [esp + 0x58]
test edx, edx
jne 0x696d3dbc
mov eax, dword [esp + 0xb0]
or eax, dword [esp + 0xb4]
or eax, dword [esp + 0xb8]
or eax, dword [esp + 0xbc]
or eax, dword [esp + 0xc0]
or eax, dword [esp + 0xc4]
or eax, dword [esp + 0xc8]
or eax, dword [esp + 0xcc]
jne 0x696d3e10
mov eax, dword [esp + 0x154]
mov dword [eax], 0
mov eax, dword [esp + 0x154]
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0x154]
lea edi, [eax + 4]
mov ecx, eax
xor eax, eax
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x40
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x158]
xor ecx, ecx
lea eax, [esp + 0xf0]
call fcn.696c8f20
mov dword [esp + 0x38], 0
jmp 0x696d3e35
add dword [esp + 0x38], 1
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x5f]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 4], eax
lea eax, [esp + 0x110]
mov dword [esp], eax
call dword [esp + 0x160]
mov dword [esp + 0x48], eax
test eax, eax
je 0x696d3dbc
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
bswap eax
mov ebx, eax
mov eax, dword [esp + 0x124]
bswap ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x120]
bswap eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x11c]
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x118]
bswap edi
bswap edx
mov esi, eax
mov eax, dword [esp + 0x114]
bswap esi
mov dword [esp + 0x44], esi
mov ebp, eax
mov eax, dword [esp + 0x110]
bswap ebp
mov dword [esp + 0x30], ebp
bswap eax
mov ecx, eax
mov eax, esi
mov esi, edx
and eax, ebp
mov dword [esp + 0x34], ecx
and eax, ecx
mov dword [esp + 0x40], esi
cmp eax, 0xffffffff
setne al
cmp edx, 0xfffffffd
setbe dl
xor ecx, ecx
or eax, edx
cmp esi, 0xffffffff
movzx eax, al
sete cl
mov edx, eax
mov ebp, ecx
mov ecx, edi
not edx
mov dword [esp + 0x3c], ecx
and ebp, edx
xor edx, edx
cmp edi, 0xbaaedce5
mov edi, ebp
setbe dl
not edi
mov esi, edi
and esi, edx
mov edx, ecx
xor ecx, ecx
mov edi, esi
or edi, eax
cmp edx, 0xbaaedce6
mov edx, edi
seta cl
xor eax, eax
not edx
and edx, ecx
mov ecx, dword [esp + 0x2c]
or edx, ebp
mov ebp, edx
cmp ecx, 0xaf48a03a
not ebp
setbe al
mov esi, ebp
mov ebp, dword [esp + 0x28]
and esi, eax
or esi, edi
cmp ecx, 0xaf48a03b
seta cl
mov edi, esi
not edi
movzx ecx, cl
and ecx, edi
or ecx, edx
xor edx, edx
cmp ebp, 0xbfd25e8b
mov edi, ecx
setbe dl
not edi
mov eax, edi
mov edi, ebx
and eax, edx
or eax, esi
cmp ebp, 0xbfd25e8c
mov esi, edi
seta dl
cmp ebx, 0xd0364140
not eax
seta bl
mov ebp, ebx
mov ebx, edi
xor edi, edi
or edx, ebp
movzx ebp, dl
xor edx, edx
and ebp, eax
or ebp, ecx
imul ecx, ebp, 0x2fc9bebf
add esi, ecx
adc edi, edx
imul eax, ebp, 0x402da173
mov edx, ecx
mov ecx, dword [esp + 0x28]
add edx, ebx
mov esi, edi
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0xd0], edx
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x2c]
adc ebx, edx
add ecx, esi
adc ebx, edi
mov dword [esp + 0x28], ecx
xor edi, edi
xor edx, edx
imul esi, ebp, 0x50b75fc4
mov dword [esp + 0xd4], ecx
mov ecx, ebx
xor ebx, ebx
add eax, esi
adc edx, edi
add eax, ecx
mov ecx, dword [esp + 0x3c]
adc edx, ebx
mov dword [esp + 0x2c], eax
xor ebx, ebx
xor edi, edi
imul esi, ebp, 0x45512319
mov dword [esp + 0xd8], eax
mov eax, edx
xor edx, edx
add esi, ecx
adc edi, ebx
add esi, eax
mov eax, dword [esp + 0x40]
mov ebx, ebp
adc edi, edx
mov dword [esp + 0x3c], esi
sar ebx, 0x1f
xor edx, edx
mov dword [esp + 0xdc], esi
mov esi, edi
xor edi, edi
add eax, ebp
adc edx, ebx
add esi, eax
mov eax, dword [esp + 0x44]
adc edi, edx
mov dword [esp + 0x40], esi
xor edx, edx
mov dword [esp + 0xe0], esi
mov esi, edi
xor edi, edi
add esi, eax
mov dword [esp + 0xe4], esi
adc edi, edx
mov eax, dword [esp + 0x30]
mov ecx, esi
mov esi, edi
xor edx, edx
xor edi, edi
mov dword [esp + 0x58], ebp
add esi, eax
mov eax, dword [esp + 0x34]
adc edi, edx
mov dword [esp + 0xe8], esi
mov ebx, esi
mov esi, edi
add esi, eax
mov dword [esp + 0xec], esi
test ebp, ebp
jne 0x696d3e30
mov edx, dword [esp + 0x4c]
or edx, dword [esp + 0x28]
or edx, dword [esp + 0x2c]
or edx, dword [esp + 0x3c]
or edx, dword [esp + 0x40]
or edx, ecx
or edx, ebx
or edx, esi
je 0x696d3e30
lea ebx, [esp + 0xf0]
lea edx, [esp + 0xd0]
mov eax, dword [esp + 0x150]
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
lea ebx, [esp + 0xb0]
lea ecx, [esp + 0x90]
mov dword [esp + 8], edx
add eax, 4
lea edx, [esp + 0x70]
mov dword [esp], ebx
call fcn.696ceb10
test eax, eax
je 0x696d3e30
mov eax, dword [esp + 0x48]
test eax, eax
je 0x696d3dbc
mov ebx, dword [esp + 0x154]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x90]
mov dword [ebx], eax
mov eax, dword [esp + 0x74]
mov dword [ebx + 0x20], edx
mov edx, dword [esp + 0x94]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x78]
mov dword [ebx + 0x24], edx
mov edx, dword [esp + 0x98]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [ebx + 0x28], edx
mov edx, dword [esp + 0x9c]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [ebx + 0x2c], edx
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x84]
mov dword [ebx + 0x30], edx
mov edx, dword [esp + 0xa4]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 0x34], edx
mov edx, dword [esp + 0xa8]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x8c]
mov dword [ebx + 0x38], edx
mov edx, dword [esp + 0xac]
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x3c], edx
jmp 0x696d3dfa
mov eax, dword [eax + 0xa8]
mov dword [esp], str.secp256k1_ecmult_gen_context_is_built_ctx__ecmult_gen_ctx_
mov dword [esp + 4], eax
mov eax, dword [esp + 0x150]
call dword [eax + 0xa4]
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [eax + 0xa8]
mov dword [esp], str.msg32___NULL
mov dword [esp + 4], eax
mov eax, dword [esp + 0x150]
call dword [eax + 0xa4]
mov dword [esp + 0x48], 0
jmp 0x696d3dfa
mov eax, dword [eax + 0xa8]
mov dword [esp], str.signature___NULL
mov dword [esp + 4], eax
mov eax, dword [esp + 0x150]
call dword [eax + 0xa4]
mov dword [esp + 0x48], 0
jmp 0x696d3dfa
mov eax, dword [eax + 0xa8]
mov dword [esp], str.seckey___NULL
mov dword [esp + 4], eax
mov eax, dword [esp + 0x150]
call dword [eax + 0xa4]
mov dword [esp + 0x48], 0
jmp 0x696d3dfa