Function at 0x407faf
Capabilities:
Hash data using sha256

Disassembly:
xor eax, eax
jge 0x4074c2
jl 0x4074c2
call 0x1b6783d
ja 0x4074c7
jbe 0x4074c7
call 0xf4a6020b
inc eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jp 0x407aca
jnp 0x407aca
call 0x1ba7e49
jnp 0x407acf
jp 0x407acf
call 0x1bc7e50
jge 0x407ad4
jl 0x407ad4
call 0x1bd7e54
jl 0x407ad9
jge 0x407ad9
call 0x1bf7e5b
jle 0x407ade
jg 0x407ade
call 0x1bb7e5c
jp 0x407ae3
jnp 0x407ae3
call 0x43077d70
add al, 0x7c
aaa
inc eax
add byte [ecx + 3], dh
mov dword [edx], eax
mov dword [edx + 4], 0x40377c
jno 0x407af1
jo 0x407af1
call 0x447b5d
add al, ch
daa
sbb eax, 0x66580000
cmp dword [esi + 0x14], 0
push 0x400
call fcn.00409822
pop eax
cmp word [esi + 0x14], 0
jne 0x407ed1
jl 0x407b0c
jge 0x407b0c
call 0xc064ff9b
add eax, dword [eax]
add dl, dh
movups xmm0, xmmword [esp + 0x3b0]
mov eax, dword [esp + 0x3c0]
movsd xmm0, qword [esp + 0x3b0]
movsd xmm1, qword [esp + 0x3b8]
lea edx, [esp + 0x14]
lea ecx, [esp + 0x1a8]
lea esi, [esp + 0x48]
mov dword [edx], ecx
mov ecx, esi
mov dword [esp + 0x1b8], eax
movsd qword [esp + 0x1b0], xmm1
movsd qword [esp + 0x1a8], xmm0
jnp 0x407b56
jp 0x407b56
call 0x8a87fc4
xor dword [eax], eax
push 4
push 0x403108
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
lea esi, [esp + 0xcc]
jae 0x407b7b
jb 0x407b7b
call 0x1464d00c
lea edx, [esp + 0x14]
mov ecx, esi
push 4
push 0x40310d
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
lea esi, [esp + 0xd4]
lea edx, [esp + 0x19c]
lea eax, [esp + 0x1a8]
jno 0x407bb4
jo 0x407bb4
call 0x64653845
add dword [eax], eax
add byte [ecx + 0x71037002], cl
add eax, ebp
lea edi, [esp + 0x164]
mov dword [edx], eax
jo 0x407bc2
jno 0x407bc2
call 0x10ab6d4f
mov ecx, esi
push 0x10
push edi
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
lea edx, [esp + 0x1a0]
lea ecx, [esp + 0x1a8]
lea esi, [esp + 0x54]
jnp 0x407bf0
jp 0x407bf0
call 0x74650081
add dword [eax], eax
add byte [ecx + 0x7e037f0a], cl
add eax, ebp
lea eax, [esp + 0x174]
mov dword [edx], ecx
jg 0x407bfe
jle 0x407bfe
call 0x2ab6d8b
mov ecx, esi
push 2
push eax
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
lea edx, [esp + 0x1a4]
lea ecx, [esp + 0x1a8]
lea esi, [esp + 0x7c]
ja 0x407c2c
jbe 0x407c2c
call 0x766500bd
add dword [eax], eax
add byte [ecx + 0x7303720a], cl
add eax, ebp
lea eax, [esp + 0x176]
mov dword [edx], ecx
jb 0x407c3a
jae 0x407c3a
call 0x2ab6dc7
mov ecx, esi
push 2
push eax
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
ja 0x407c56
jbe 0x407c56
call 0x186510e5
add dword [eax], eax
add byte [ebp + 0x7d14244c], cl
add edi, dword [ecx + eax - 0x18]
mov edx, dword [esp + 0x118]
lea ecx, [esp + 0x14]
jge 0x407c66
jl 0x407c66
call 0x5ccd52
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
pop ebp
add al, byte [eax]
add byte [ebp + 3], bh
call fcn.004098bb
test ax, ax
jne 0x407ed1
jge 0x407c79
jl 0x407c79
call 0x1c651108
add dword [eax], eax
add byte [ebp + 0x7314244c], cl
add esi, dword [edx + 1]
mov edx, dword [esp + 0x11c]
lea ecx, [esp + 0x14]
jae 0x407c89
jb 0x407c89
call 0x5caa75
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
cmp al, byte [edx]
add byte [eax], al
call fcn.004098bb
test ax, ax
jne 0x407ed1
jbe 0x407c9c
ja 0x407c9c
call 0x6065112b
add dword [eax], eax
add byte [ebp + 0x7c14244c], cl
add edi, dword [ebp + 1]
mov edx, dword [esp + 0x160]
lea ecx, [esp + 0x14]
jl 0x407cac
jge 0x407cac
call 0x5cb498
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
pop ss
add al, byte [eax]
add byte [edi + 3], bh
call 0x4098e8
test ax, ax
jne 0x407ed1
jg 0x407cbf
jle 0x407cbf
call 0x7865114e
add dword [eax], eax
add byte [ebp + 0x7214244c], cl
add esi, dword [ebx + 1]
mov edx, dword [esp + 0x178]
lea ecx, [esp + 0x14]
jb 0x407ccf
jae 0x407ccf
call 0x5cc3bb
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
hlt
call fcn.0040991a
test ax, ax
jne 0x407ed1
jno 0x407ce2
jo 0x407ce2
call 0x24d532f5
jns 0x407ce9
movzx edx, byte [esp + 0x179]
add byte [eax], al
add byte [ebp - 0x17ebdbb4], cl
add dword [eax], eax
add byte [eax], al
lea ecx, [esp + 0x14]
call 0x407cf4
add al, ch
call fcn.0040991a
test ax, ax
jne 0x407ed1
jns 0x407d08
js 0x407d08
call 0x24d5331b
jp 0x407d0f
movzx edx, byte [esp + 0x17a]
add byte [eax], al
add byte [ebp + 0x7414244c], cl
add esi, dword [ebp + 1]
lea ecx, [esp + 0x14]
je 0x407d19
jne 0x407d19
call 0x5c7a05
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
stosb byte es:[edi], al
add dword [eax], eax
add byte [esi + 3], bh
call fcn.0040991a
test ax, ax
jne 0x407ed1
jle 0x407d2c
jg 0x407d2c
call 0x24d5343f
bound eax, qword [ecx]
add byte [eax], al
movzx edx, word [esp + 0x162]
lea ecx, [esp + 0x14]
ja 0x407d3d
jbe 0x407d3d
call 0x5c2429
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
xchg byte [ecx], al
add byte [eax], al
call 0x4098e8
test ax, ax
jne 0x407ed1
jge 0x407d50
jl 0x407d50
call 0x206511df
add dword [eax], eax
add byte [ebp + 0x7c14244c], cl
add edi, dword [ebp + 1]
mov edx, dword [esp + 0x120]
lea ecx, [esp + 0x14]
jl 0x407d60
jge 0x407d60
call 0x5bd44c
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
arpl word [ecx], ax
add byte [eax], al
call fcn.004098bb
test ax, ax
jne 0x407ed1
jg 0x407d73
jle 0x407d73
call 0x24651202
add dword [eax], eax
add byte [ebp + 0x7f14244c], cl
add edi, dword [esi + 1]
mov edx, dword [esp + 0x124]
lea ecx, [esp + 0x14]
jg 0x407d83
jle 0x407d83
call 0x5bb16f
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
inc eax
add dword [eax], eax
add byte [esi + 3], bh
call fcn.004098bb
test ax, ax
jne 0x407ed1
jle 0x407d96
jg 0x407d96
call 0x28651225
add dword [eax], eax
add byte [ebp + 0x7014244c], cl
add esi, dword [ecx + 1]
mov edx, dword [esp + 0x128]
lea ecx, [esp + 0x14]
jo 0x407da6
jno 0x407da6
call 0x5b8e92
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
sbb eax, 0x74000001
add esi, dword [ebp + 1]
call fcn.004098bb
test ax, ax
jne 0x407ed1
je 0x407db9
jne 0x407db9
call 0x2c651248
add dword [eax], eax
add byte [ebp + 0x7614244c], cl
add esi, dword [edi + 1]
mov edx, dword [esp + 0x12c]
lea ecx, [esp + 0x14]
jbe 0x407dc9
ja 0x407dc9
call 0x5b6bb5
add byte [esi - 0x7b], ah
ror byte [edi], 0x85
cli
add byte [eax], al
add al, ch
add dword [eax], eax
add byte [eax], al
call fcn.004098bb
test ax, ax
jne 0x407ed1
call 0x407ddd
add al, ch
mov edi, dword [esp + 0x134]
mov eax, dword [esp + 0x130]
lea esi, [esp + 0x84]
ja 0x407df8
jbe 0x407df8
call 0x1464d289
lea edx, [esp + 0x14]
mov ecx, esi
push edi
push eax
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
jo 0x407e17
jno 0x407e17
call 0x1464caa8
lea ecx, [esp + 0x14]
push 9
pop edx
call fcn.0040991a
test ax, ax
jne 0x407ed1
je 0x407e31
jne 0x407e31
call 0x3c653ac0
add dword [eax], eax
add byte [ebx + 0x1382484], cl
add byte [eax], al
mov edi, dword [esp + 0x13c]
mov eax, dword [esp + 0x138]
lea esi, [esp + 0x8c]
jge 0x407e4b
jl 0x407e4b
call 0x1464d2dc
lea edx, [esp + 0x14]
mov ecx, esi
push edi
push eax
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
jge 0x407e66
jl 0x407e66
call 0x1464caf7
lea ecx, [esp + 0x14]
push 9
pop edx
call fcn.0040991a
test ax, ax
jne 0x407ed1
jo 0x407e7c
jno 0x407e7c
call 0x44653b0b
add dword [eax], eax
add byte [ebx + 0x1402484], cl
add byte [eax], al
mov edi, dword [esp + 0x144]
mov eax, dword [esp + 0x140]
lea esi, [esp + 0xa0]
jno 0x407e96
jo 0x407e96
call 0x1464d327
lea edx, [esp + 0x14]
mov ecx, esi
push edi
push eax
call fcn.0040988f
pop eax
pop ecx
cmp word [esi + 4], 0
jne 0x407ed1
lea esi, [esp + 0xdc]
lea edx, [esp + 0x1a8]
jne 0x407ebf
je 0x407ebf
call 0x7d29704c
sbb al, byte [eax]
add byte [esi - 0x7d], ah
jle 0x407ed2
mov ecx, esi
call fcn.00409942
cmp word [esi + 8], 0
je 0x407f53
add byte [edi], cl
test byte [edx + 0x7c000000], al
jl 0x407ed6
add edi, dword [ebp + 1]
jge 0x407ed6
call 0x1bf8258
jle 0x407edb
jg 0x407edb
call 0x1b08250
jno 0x407ee0
jo 0x407ee0
call 0x1b9825c
js 0x407ee5
jns 0x407ee5
call 0x1b7825f
jbe 0x407eea
ja 0x407eea
call 0x1b0825f
jno 0x407eef
jo 0x407eef
call 0x1ba826e
jnp 0x407ef4
jp 0x407ef4
call 0x1b18268
jo 0x407ef9
jno 0x407ef9
call 0x1ba8278
jnp 0x407efe
jp 0x407efe
call 0x1b8827b
jns 0x407f03
js 0x407f03
call 0x1bf8285
jle 0x407f08
jg 0x407f08
call 0x1b98284
js 0x407f0d
jns 0x407f0d
call 0x1be8290
jg 0x407f12
jle 0x407f12
call 0x1b8828f
jns 0x407f17
js 0x407f17
call 0x1b68292
ja 0x407f1c
jbe 0x407f1c
call 0x1b38292
jb 0x407f21
jae 0x407f21
call 0x1bf82a3
jle 0x407f26
jg 0x407f26
call 0x1b0829b
jno 0x407f2b
jo 0x407f2b
call 0x1b382a1
jb 0x407f30
jae 0x407f30
call 0x1bf82b2
jle 0x407f35
jg 0x407f35
call 0x1b182a9
jo 0x407f3a
jno 0x407f3a
call 0x1bb82b8
jp 0x407f3f
jnp 0x407f3f
call 0x1b882bc
jns 0x407f44
js 0x407f44
call 0x1b482bd
jne 0x407f49
je 0x407f49
call 0x1b382bf
jb 0x407f4e
jae 0x407f4e
call 0x35e83b
dec dword [ebp + 0xdc248c]
add byte [eax], al
jmp 0x4074bb
lea ecx, [esp + 0xdc]
jle 0x407f5f
jg 0x407f5f
call 0x49cb80ee
add al, 0x7a
add edi, dword [ebx + 1]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jp 0x407f69
jnp 0x407f69
call 0x1038d0fa
retf 0x5089
lea edx, [ecx - 8]
bswap edx
mov dword [eax + 4], edx
mov dword [esp + 0x148], eax
lea eax, [esp + 0x400]
mov dword [esp + 0x14c], ecx
jns 0x407f8b
js 0x407f8b
call 0x1ba830a
jnp 0x407f90
jp 0x407f90
call 0x1b7830a
jbe 0x407f95
ja 0x407f95
call 0x1bc8316
jge 0x407f9a
jl 0x407f9a
call 0x1b58312
call 0x1b38315
call 0x1b08319
call fcn.00408195
add byte [eax], al
call 0x1be8333
call 0x1b3832b
call 0x1b28331
call 0x1bc8340
call 0x1bc8345
call 0x1bf834b
call 0x1b68349
call 0x1bc8354
call 0x1be835b
call 0x1b8835a
call 0x1b08357
call 0x1b1835b
call 0x24f0c0b7
jo 0x408032
je 0x407f9f
jne 0x407f9f
jb 0x407fa4
add byte [ecx + 3], bh
js 0x407ff8
jle 0x408037