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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov esi, dword [esp + 0xc4]
mov dword [esp + 0x5c], 0
mov edi, dword [esp + 0xc8]
test esi, esi
je 0x696d2d28
test edi, edi
je 0x696d2d60
mov edx, edi
lea ecx, [esp + 0x5c]
lea eax, [esp + 0x60]
call fcn.696c8f20
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x2c]
mov esi, dword [edi + 0x24]
mov ebx, dword [edi + 0x3c]
bswap ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x34]
bswap eax
mov edx, eax
mov eax, dword [edi + 0x28]
bswap esi
mov dword [esp + 0x30], esi
mov ebp, ecx
mov ecx, dword [edi + 0x30]
bswap ebx
bswap ebp
bswap eax
mov dword [esp + 0x20], ebp
mov ebp, eax
mov eax, dword [edi + 0x20]
bswap ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], ebp
bswap eax
mov edi, eax
mov eax, ebp
and eax, esi
mov esi, edx
mov dword [esp + 0x34], edi
and eax, edi
mov dword [esp + 0x38], 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
not edx
and ecx, edx
xor edx, edx
mov ebp, ecx
mov ecx, dword [esp + 0x28]
mov esi, ebp
cmp ecx, 0xbaaedce5
not esi
setbe dl
and esi, edx
mov edx, esi
or edx, eax
mov eax, ecx
xor ecx, ecx
cmp eax, 0xbaaedce6
mov edi, edx
not edx
seta cl
xor eax, eax
and edx, ecx
or edx, ebp
mov ebp, dword [esp + 0x20]
mov esi, edx
cmp ebp, 0xaf48a03a
not esi
setbe al
xor ecx, ecx
and esi, eax
or esi, edi
cmp ebp, 0xaf48a03b
mov edi, dword [esp + 0x18]
mov eax, esi
seta cl
not eax
and ecx, eax
or ecx, edx
xor edx, edx
cmp edi, 0xbfd25e8b
mov eax, ecx
setbe dl
not eax
and eax, edx
or eax, esi
cmp edi, 0xbfd25e8c
not eax
seta dl
cmp ebx, 0xd0364140
mov esi, eax
seta al
xor edi, edi
mov ebp, eax
or edx, ebp
movzx ebp, dl
xor edx, edx
and ebp, esi
mov esi, ebx
or ebp, ecx
imul ecx, ebp, 0x2fc9bebf
add esi, ecx
adc edi, edx
imul eax, ebp, 0x402da173
lea edx, [ebx + ecx]
mov ecx, dword [esp + 0x18]
mov esi, edi
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x4c], edx
xor edx, edx
add eax, ecx
mov ecx, dword [esp + 0x20]
adc edx, ebx
add eax, esi
adc edx, edi
mov dword [esp + 0x40], eax
imul eax, ebp, 0x50b75fc4
xor edi, edi
mov esi, edx
xor ebx, ebx
mov dword [esp + 0x44], edx
xor edx, edx
add eax, ecx
adc edx, ebx
mov ecx, edx
mov edx, eax
add edx, esi
adc ecx, edi
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x20], edx
imul eax, ebp, 0x45512319
mov edi, esi
mov dword [esp + 0x24], ecx
mov esi, ecx
mov ecx, dword [esp + 0x28]
xor edx, edx
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x38]
add ecx, esi
mov ebx, edx
adc ebx, edi
xor edi, edi
xor edx, edx
mov dword [esp + 0x28], ecx
mov esi, ebx
mov dword [esp + 0x2c], ebx
mov ebx, ebp
sar ebx, 0x1f
add eax, ebp
adc edx, ebx
add eax, esi
adc edx, edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
xor ebx, ebx
mov ecx, edx
mov dword [esp + 0x3c], edx
mov esi, dword [esp + 0x30]
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x34]
adc ebx, edx
xor edx, edx
xor edi, edi
add esi, ebx
adc edi, edx
xor edx, edx
mov dword [esp + 0x1c], edx
xor edx, edx
mov dword [esp + 0x18], edi
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
or ebp, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
je 0x696d2ca0
mov eax, dword [esp + 0xc4]
mov dword [eax], 0
mov eax, dword [esp + 0xc4]
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0xc4]
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
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0xc4]
mov edx, dword [esp + 0x60]
mov dword [ebp], edx
mov edx, dword [esp + 0x64]
mov eax, ebp
mov dword [ebp + 4], edx
mov edx, dword [esp + 0x68]
mov dword [ebp + 8], edx
mov edx, dword [esp + 0x6c]
mov dword [ebp + 0xc], edx
mov edx, dword [esp + 0x70]
mov dword [ebp + 0x10], edx
mov edx, dword [esp + 0x74]
mov dword [ebp + 0x14], edx
mov edx, dword [esp + 0x78]
mov dword [ebp + 0x18], edx
mov edx, dword [esp + 0x7c]
mov dword [ebp + 0x1c], edx
lea edx, [ebp + 0x20]
mov ebp, dword [esp + 0x4c]
mov dword [eax + 0x20], ebp
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov dword [edx + 0x18], esi
mov dword [edx + 4], ebp
mov ebp, dword [esp + 0x20]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 8], ebp
mov ebp, dword [esp + 0x28]
mov dword [edx + 0x1c], eax
mov eax, 1
mov dword [edx + 0xc], ebp
mov dword [edx + 0x14], ecx
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 0xa8]
mov dword [esp], str.sig___NULL
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
call dword [eax + 0xa4]
add esp, 0xac
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 0xa8]
mov dword [esp], str.input64___NULL
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
call dword [eax + 0xa4]
xor eax, eax
jmp 0x696d2c8f