Function at 0x10183810
Capabilities:
Hash data using sha256

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x1d0
mov eax, dword [0x106499c8]
xor eax, ebp
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x70]
push ebx
mov ebx, dword [ebp + 0x74]
push esi
mov esi, dword [sym.imp.MSVCR110.dll_strncmp]
push edi
mov edi, dword [ebp + 0x7c]
push 3
mov dword [ebp - 0x140], eax
mov eax, dword [ebp + 0x78]
push ebx
push 0x104baff8
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x154], 0x1388
mov byte [ebp - 0x139], 0
call esi
add esp, 0xc
test eax, eax
jne 0x10183891
add ebx, 3
mov dword [ebp - 0x144], ebx
push 7
push 0x104baffc
push ebx
call esi
add esp, 0xc
test eax, eax
jne 0x101838ef
push 0xa
lea eax, [ebp - 0x168]
push eax
lea eax, [ebx + 7]
push eax
call dword [sym.imp.MSVCR110.dll_strtoul]
mov ecx, eax
mov eax, dword [ebp - 0x168]
add esp, 0xc
cmp byte [eax], 0x24
jne 0x101838ef
lea ebx, [eax + 1]
mov eax, 0x3b9ac9ff
cmp ecx, eax
cmovb eax, ecx
mov ecx, 0x3e8
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x154], eax
mov byte [ebp - 0x139], 1
mov esi, dword [sym.imp.MSVCR110.dll_strcspn]
push 0x104badf4
push ebx
call esi
add esp, 8
cmp eax, 0x10
jae 0x10183918
push 0x104badf4
push ebx
call esi
add esp, 8
mov dword [ebp - 0x138], eax
jmp 0x10183922
mov dword [ebp - 0x138], 0x10
mov ecx, dword [ebp - 0x140]
mov ebx, ecx
lea edx, [ebx + 1]
lea ecx, [ecx]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x10183930
sub ebx, edx
mov dword [ebp - 0x14c], ebx
test cl, 3
je 0x10183979
lea eax, [ebx + 4]
call fcn.10312260
mov eax, dword [ebp - 0x140]
mov ecx, esp
push ebx
push eax
mov eax, ecx
and eax, 3
sub ecx, eax
add ecx, 4
push ecx
call sub.MSVCR110.dll_memcpy
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x140], esi
jmp 0x1018397f
mov esi, dword [ebp - 0x140]
test byte [ebp - 0x144], 3
je 0x101839cf
mov eax, dword [ebp - 0x138]
add eax, 5
call fcn.10312260
mov ecx, esp
push dword [ebp - 0x138]
mov eax, ecx
push dword [ebp - 0x144]
and eax, 3
sub ecx, eax
add ecx, 4
push ecx
call sub.MSVCR110.dll_memcpy
mov ecx, eax
mov eax, dword [ebp - 0x138]
add esp, 0xc
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x144], ecx
mov byte [eax + ecx], 0
lea eax, [ebp - 0x88]
push eax
push ebx
push esi
mov dword [ebp - 0x88], 0x6a09e667
mov dword [ebp - 0x84], 0xbb67ae85
mov dword [ebp - 0x80], 0x3c6ef372
mov dword [ebp - 0x7c], 0xa54ff53a
mov dword [ebp - 0x78], 0x510e527f
mov dword [ebp - 0x74], 0x9b05688c
mov dword [ebp - 0x70], 0x1f83d9ab
mov dword [ebp - 0x6c], 0x5be0cd19
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x60], 0
call fcn.101836e0
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x138]
push dword [ebp - 0x144]
call fcn.101836e0
lea eax, [ebp - 0x134]
push eax
push ebx
push esi
mov dword [ebp - 0x134], 0x6a09e667
mov dword [ebp - 0x130], 0xbb67ae85
mov dword [ebp - 0x12c], 0x3c6ef372
mov dword [ebp - 0x128], 0xa54ff53a
mov dword [ebp - 0x124], 0x510e527f
mov dword [ebp - 0x120], 0x9b05688c
mov dword [ebp - 0x11c], 0x1f83d9ab
mov dword [ebp - 0x118], 0x5be0cd19
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x10c], 0
call fcn.101836e0
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x138]
push dword [ebp - 0x144]
call fcn.101836e0
lea eax, [ebp - 0x134]
push eax
push ebx
push esi
call fcn.101836e0
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.101834d0
add esp, 0x44
mov eax, ebx
cmp ebx, 0x20
jbe 0x10183b43
lea esi, [ebx - 0x21]
shr esi, 5
inc esi
mov edi, ebx
lea ecx, [ecx]
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp + 0x44]
push 0x20
push eax
call fcn.101836e0
add esp, 0xc
sub edi, 0x20
dec esi
jne 0x10183b10
mov esi, dword [ebp - 0x140]
mov dword [ebp - 0x150], edi
mov edi, dword [ebp - 0x158]
mov eax, dword [ebp - 0x150]
lea ecx, [ebp - 0x88]
push ecx
push eax
lea eax, [ebp + 0x44]
push eax
call fcn.101836e0
add esp, 0xc
mov eax, ebx
mov dword [ebp - 0x148], eax
test ebx, ebx
je 0x10183b90
test al, 1
lea eax, [ebp - 0x88]
push eax
je 0x10183b76
push 0x20
lea eax, [ebp + 0x44]
push eax
jmp 0x10183b78
push ebx
push esi
call fcn.101836e0
mov eax, dword [ebp - 0x148]
add esp, 0xc
shr eax, 1
mov dword [ebp - 0x148], eax
jne 0x10183b63
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.101834d0
add esp, 8
mov dword [ebp - 0x134], 0x6a09e667
mov dword [ebp - 0x130], 0xbb67ae85
mov dword [ebp - 0x12c], 0x3c6ef372
mov dword [ebp - 0x128], 0xa54ff53a
mov dword [ebp - 0x124], 0x510e527f
mov dword [ebp - 0x120], 0x9b05688c
mov dword [ebp - 0x11c], 0x1f83d9ab
mov dword [ebp - 0x118], 0x5be0cd19
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x10c], 0
test ebx, ebx
je 0x10183c31
mov edi, ebx
lea eax, [ebp - 0x134]
push eax
push ebx
push esi
call fcn.101836e0
add esp, 0xc
dec edi
jne 0x10183c17
mov edi, dword [ebp - 0x158]
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.101834d0
add esp, 8
mov eax, ebx
call fcn.10312260
mov eax, esp
mov dword [ebp - 0x140], eax
mov ecx, ebx
cmp ebx, 0x20
jb 0x10183c8b
mov esi, ebx
shr esi, 5
mov edi, ebx
push 0x20
lea ecx, [ebp + 0x24]
push ecx
push eax
call sub.MSVCR110.dll_memcpy
add esp, 0xc
add eax, 0x20
sub edi, 0x20
dec esi
jne 0x10183c61
mov dword [ebp - 0x150], edi
mov edi, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x150]
push ecx
lea ecx, [ebp + 0x24]
push ecx
push eax
call sub.MSVCR110.dll_memcpy
movzx esi, byte [ebp + 0x44]
add esp, 0xc
mov dword [ebp - 0x134], 0x6a09e667
mov dword [ebp - 0x130], 0xbb67ae85
mov dword [ebp - 0x12c], 0x3c6ef372
mov dword [ebp - 0x128], 0xa54ff53a
mov dword [ebp - 0x124], 0x510e527f
mov dword [ebp - 0x120], 0x9b05688c
mov dword [ebp - 0x11c], 0x1f83d9ab
mov dword [ebp - 0x118], 0x5be0cd19
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x10c], 0
add esi, 0x10
je 0x10183d40
mov ebx, dword [ebp - 0x144]
mov edi, dword [ebp - 0x138]
lea esp, [esp]
lea eax, [ebp - 0x134]
push eax
push edi
push ebx
call fcn.101836e0
add esp, 0xc
dec esi
jne 0x10183d20
mov edi, dword [ebp - 0x158]
mov ebx, dword [ebp - 0x14c]
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.101834d0
mov esi, dword [ebp - 0x138]
add esp, 8
mov eax, esi
call fcn.10312260
mov eax, esp
mov ecx, esi
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x148], ecx
cmp esi, 0x20
jb 0x10183daa
shr esi, 5
mov edi, ecx
lea ebx, [ebx]
push 0x20
lea ecx, [ebp + 0x24]
push ecx
push eax
call sub.MSVCR110.dll_memcpy
add esp, 0xc
add eax, 0x20
sub edi, 0x20
dec esi
jne 0x10183d80
mov dword [ebp - 0x148], edi
mov edi, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x148]
push ecx
lea ecx, [ebp + 0x24]
push ecx
push eax
call sub.MSVCR110.dll_memcpy
xor esi, esi
add esp, 0xc
cmp dword [ebp - 0x154], esi
jbe 0x10183efb
mov edi, dword [ebp - 0x154]
lea esp, [esp]
mov eax, esi
and eax, 1
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0x88], 0x6a09e667
mov dword [ebp - 0x84], 0xbb67ae85
mov dword [ebp - 0x80], 0x3c6ef372
mov dword [ebp - 0x7c], 0xa54ff53a
mov dword [ebp - 0x78], 0x510e527f
mov dword [ebp - 0x74], 0x9b05688c
mov dword [ebp - 0x70], 0x1f83d9ab
mov dword [ebp - 0x6c], 0x5be0cd19
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x60], 0
push eax
je 0x10183e40
push ebx
push dword [ebp - 0x140]
jmp 0x10183e46
push 0x20
lea eax, [ebp + 0x44]
push eax
call fcn.101836e0
mov eax, 0xaaaaaaab
mul esi
shr edx, 1
mov ecx, esi
lea eax, [edx + edx*2]
add esp, 0xc
sub ecx, eax
je 0x10183e7b
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x138]
push dword [ebp - 0x150]
call fcn.101836e0
add esp, 0xc
mov eax, 0x24924925
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
sub eax, ecx
je 0x10183eb2
lea eax, [ebp - 0x88]
push eax
push ebx
push dword [ebp - 0x140]
call fcn.101836e0
add esp, 0xc
cmp dword [ebp - 0x14c], 0
lea eax, [ebp - 0x88]
push eax
je 0x10183eca
push 0x20
lea eax, [ebp + 0x44]
push eax
jmp 0x10183ed1
push ebx
push dword [ebp - 0x140]
call fcn.101836e0
add esp, 0xc
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.101834d0
inc esi
add esp, 8
cmp esi, edi
jb 0x10183dd0
mov edi, dword [ebp - 0x158]
xor ecx, ecx
test edi, edi
mov eax, edi
cmovs eax, ecx
push eax
mov esi, 3
push 0x104baff8
push dword [ebp - 0x15c]
cmp eax, esi
cmovb esi, eax
call dword [sym.imp.MSVCR110.dll_strncpy]
add esp, 0xc
lea edx, [esi + eax]
sub edi, 3
cmp byte [ebp - 0x139], 0
mov dword [ebp - 0x14c], edx
je 0x10183f66
push dword [ebp - 0x154]
xor ecx, ecx
push 0x104baffc
mov eax, edi
test edi, edi
cmovs eax, ecx
push 0x104bb048
push eax
push edx
call dword [sym.imp.MSVCR110.dll__snprintf]
mov edx, dword [ebp - 0x14c]
add esp, 0x14
add edx, eax
sub edi, eax
xor ecx, ecx
test edi, edi
mov eax, edi
cmovs eax, ecx
mov ecx, dword [ebp - 0x138]
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x148], ecx
mov ecx, dword [ebp - 0x144]
mov esi, ecx
mov dword [ebp - 0x154], eax
lea eax, [esi + 1]
mov dword [ebp - 0x14c], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x10183f97
mov eax, dword [ebp - 0x148]
sub esi, dword [ebp - 0x14c]
push eax
push ecx
cmp esi, eax
push edx
cmova esi, eax
call dword [sym.imp.MSVCR110.dll_strncpy]
add eax, esi
mov esi, dword [ebp - 0x138]
add esp, 0xc
cmp dword [ebp - 0x154], esi
mov ecx, esi
cmovb ecx, dword [ebp - 0x154]
sub edi, ecx
test edi, edi
jle 0x10183fdd
mov byte [eax], 0x24
inc eax
dec edi
movzx edx, byte [ebp + 0x44]
movzx ecx, byte [ebp + 0x4e]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x58]
shl edx, 8
or edx, ecx
mov esi, 4
dec esi
test edi, edi
jle 0x10184014
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x10183ff8
movzx edx, byte [ebp + 0x59]
movzx ecx, byte [ebp + 0x45]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x4f]
shl edx, 8
or edx, ecx
mov esi, 4
nop
dec esi
test edi, edi
jle 0x1018404c
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x10184030
movzx edx, byte [ebp + 0x50]
movzx ecx, byte [ebp + 0x5a]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x46]
shl edx, 8
or edx, ecx
mov esi, 4
dec esi
test edi, edi
jle 0x10184083
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x10184067
movzx edx, byte [ebp + 0x47]
movzx ecx, byte [ebp + 0x51]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x5b]
shl edx, 8
or edx, ecx
mov esi, 4
mov edi, edi
dec esi
test edi, edi
jle 0x101840bc
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x101840a0
movzx edx, byte [ebp + 0x5c]
movzx ecx, byte [ebp + 0x48]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x52]
shl edx, 8
or edx, ecx
mov esi, 4
dec esi
test edi, edi
jle 0x101840f3
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x101840d7
movzx edx, byte [ebp + 0x53]
movzx ecx, byte [ebp + 0x5d]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x49]
shl edx, 8
or edx, ecx
mov esi, 4
mov edi, edi
dec esi
test edi, edi
jle 0x1018412c
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x10184110
movzx edx, byte [ebp + 0x4a]
movzx ecx, byte [ebp + 0x54]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x5e]
shl edx, 8
or edx, ecx
mov esi, 4
dec esi
test edi, edi
jle 0x10184163
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x10184147
movzx edx, byte [ebp + 0x5f]
movzx ecx, byte [ebp + 0x4b]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x55]
shl edx, 8
or edx, ecx
mov esi, 4
mov edi, edi
dec esi
test edi, edi
jle 0x1018419c
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x10184180
movzx edx, byte [ebp + 0x56]
movzx ecx, byte [ebp + 0x60]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x4c]
shl edx, 8
or edx, ecx
mov esi, 4
dec esi
test edi, edi
jle 0x101841d3
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x101841b7
movzx edx, byte [ebp + 0x4d]
movzx ecx, byte [ebp + 0x57]
shl edx, 8
or edx, ecx
movzx ecx, byte [ebp + 0x61]
shl edx, 8
or edx, ecx
mov esi, 4
mov edi, edi
dec esi
test edi, edi
jle 0x1018420c
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x101841f0
movzx edx, byte [ebp + 0x63]
movzx ecx, byte [ebp + 0x62]
shl edx, 8
or edx, ecx
mov esi, 3
mov edi, edi
dec esi
test edi, edi
jle 0x1018424b
mov ecx, edx
and ecx, 0x3f
inc eax
mov cl, byte [ecx + str.._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_s_u_]
mov byte [eax - 1], cl
dec edi
shr edx, 6
test esi, esi
jg 0x10184220
test edi, edi
jle 0x1018424b
mov edi, dword [ebp - 0x15c]
mov byte [eax], 0
jmp 0x10184259
call dword [sym.imp.MSVCR110.dll__errno]
mov dword [eax], 0x22
xor edi, edi
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp - 0x88]
push eax
mov dword [ebp - 0x88], 0x6a09e667
mov dword [ebp - 0x84], 0xbb67ae85
mov dword [ebp - 0x80], 0x3c6ef372
mov dword [ebp - 0x7c], 0xa54ff53a
mov dword [ebp - 0x78], 0x510e527f
mov dword [ebp - 0x74], 0x9b05688c
mov dword [ebp - 0x70], 0x1f83d9ab
mov dword [ebp - 0x6c], 0x5be0cd19
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x60], 0
call fcn.101834d0
push ebx
push 0
push dword [ebp - 0x140]
call sub.MSVCR110.dll_memset
mov esi, dword [ebp - 0x138]
push esi
push 0
push dword [ebp - 0x150]
call sub.MSVCR110.dll_memset
mov eax, dword [ebp - 0x160]
add esp, 0x20
test eax, eax
je 0x101842f7
push ebx
push 0
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x164]
test eax, eax
je 0x1018430d
push esi
push 0
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
mov eax, edi
lea esp, [ebp - 0x174]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x64]
xor ecx, ebp
call fcn.10311bec
lea esp, [ebp + 0x68]
pop ebp
ret