Function at 0x10070390
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x24bc
call fcn.1002a240
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov dword [0x10098820], eax
mov eax, dword [ebp + 0xc]
push 0x1000
mov dword [0x10098824], eax
lea eax, [esp + 0x4cc]
push 0
push eax
call fcn.1002bca0
add esp, 0xc
lea eax, [esp + 0x14c8]
push 0x1000
push 0
push eax
call fcn.1002bca0
add esp, 0xc
call fcn.10001f90
test eax, eax
je 0x10070804
mov edx, dword [eax]
cmp edx, vtable.ATL::CAtlStringMgr.0
jne 0x1007080e
lock inc dword [eax + 0x14]
add eax, 8
push 0
add eax, 0x10
lea ecx, [esp + 0x20]
push 0x1008a430
mov dword [esp + 0x24], eax
call fcn.100045d0
lea ecx, [esp + 0x24]
call fcn.1007a970
call fcn.10001f90
test eax, eax
je 0x10070818
mov edx, dword [eax]
cmp edx, vtable.ATL::CAtlStringMgr.0
jne 0x10070822
lock inc dword [eax + 0x14]
add eax, 8
add eax, 0x10
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], eax
call fcn.1007acf0
call fcn.10001f90
test eax, eax
je 0x1007082c
mov edx, dword [eax]
cmp edx, vtable.ATL::CAtlStringMgr.0
jne 0x10070836
lock inc dword [eax + 0x14]
add eax, 8
add eax, 0x10
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
call fcn.1007a250
lea ecx, [esp + 0x20]
call fcn.1007a730
call fcn.10001f90
test eax, eax
je 0x10070840
mov edx, dword [eax]
cmp edx, vtable.ATL::CAtlStringMgr.0
jne 0x1007084a
lock inc dword [eax + 0x14]
add eax, 8
add eax, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], eax
call fcn.1007a3e0
push dword [esp + 0x1c]
lea eax, [esp + 0x4cc]
push 0x800
push eax
call fcn.10048b84
add esp, 0xc
lea eax, [esp + 0x4c8]
push dword [esp + 0x24]
push 0x800
push eax
call fcn.10048c5a
add esp, 0xc
lea eax, [esp + 0x4c8]
push dword [esp + 0x18]
push 0x800
push eax
call fcn.10048c5a
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x4d4]
add esp, 0xc
push edi
push 0x800
push eax
call fcn.10048c5a
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x14d4]
add esp, 0xc
push esi
push 0x800
push eax
call fcn.10048c5a
add esp, 0xc
lea eax, [esp + 0x14c8]
push dword [esp + 0x20]
push 0x800
push eax
call fcn.10048c5a
add esp, 0xc
mov dword [esp + 0x48], 0
lea eax, [esp + 0x4c8]
mov dword [esp + 0x8c], 0x6a09e667
xorps xmm0, xmm0
mov dword [esp + 0x90], 0xbb67ae85
movlpd qword [esp + 0x40], xmm0
push 0x800
push eax
mov dword [esp + 0x9c], 0x3c6ef372
mov dword [esp + 0xa0], 0xa54ff53a
mov dword [esp + 0xa4], 0x510e527f
mov dword [esp + 0xa8], 0x9b05688c
mov dword [esp + 0xac], 0x1f83d9ab
mov dword [esp + 0xb0], 0x5be0cd19
call fcn.10036dff
add esp, 8
lea ecx, [esp + 0x40]
add eax, eax
push eax
lea eax, [esp + 0x4cc]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.100751d0
lea eax, [esp + 0x14c8]
push 0x800
push eax
call fcn.10036dff
add esp, 8
lea ecx, [esp + 0x40]
add eax, eax
push eax
lea eax, [esp + 0x14cc]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.100751d0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x34]
call fcn.10003780
lea ecx, [esp + 0xb0]
call fcn.100029f0
push 0x400
lea eax, [esp + 0xcc]
push 0
push eax
call fcn.1002bca0
add esp, 0xc
lea eax, [esp + 0x28]
cmp dword [esp + 0x3c], 0x10
cmovae eax, dword [esp + 0x28]
push eax
push 0x1008b530
lea eax, [esp + 0xd0]
push 0x400
push eax
call fcn.100014a0
add esp, 0x10
cmp dword [0x10098820], 0
je 0x100706be
mov eax, dword [0x10098824]
add eax, 0x404
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push dword [0x10098824]
mov ebx, eax
lea eax, [esp + 0xcc]
push eax
lea ecx, [ebx + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov edx, dword [0x10098820]
mov ecx, dword [edx]
mov dword [ebx], ecx
mov dword [edx], ebx
lea ecx, [esp + 0x28]
call fcn.100029f0
lea ecx, [esi - 0x10]
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ecx + 0xc], eax
dec eax
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x10070704
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x10070854
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
mov ecx, dword [esp + 0x20]
mov eax, esi
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x1007073c
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x1007085f
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x10070768
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x1007086a
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call ebx
mov ecx, dword [esp + 0x18]
mov eax, esi
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x10070798
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x10070871
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
mov ecx, dword [esp + 0x24]
mov eax, esi
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x100707c8
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x1007087a
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], esi
dec esi
test esi, esi
jg 0x100707fd
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x10070883
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.10001530
mov ecx, eax
call dword [edx + 0xc]
jmp 0x10070403
push 0x80004005
call fcn.10001530
mov ecx, eax
call dword [edx + 0xc]
jmp 0x10070445
push 0x80004005
call fcn.10001530
mov ecx, eax
call dword [edx + 0xc]
jmp 0x10070477
push 0x80004005
call fcn.10001530
mov ecx, eax
call dword [edx + 0xc]
jmp 0x100704b2
mov ecx, edx
call dword [esp + 0x14]
jmp 0x10070704
mov ecx, edx
call dword [esp + 0x14]
jmp 0x1007073c
call edx
jmp 0x10070768
mov ecx, edx
call edi
jmp 0x10070798
mov ecx, edx
call edi
jmp 0x100707c8
mov ecx, edx
call esi
jmp 0x100707fd