Function at 0x4022e0
Capabilities:
Hash data using sha1
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, ecx
push esi
push edi
mov edi, edx
mov dword [ebx], edi
mov eax, dword [edi]
lea ecx, [ebx + 0xf8]
mov ax, word [eax]
mov word [ebx + 8], ax
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x2d0], 0
mov dword [ebx + 0x2d8], 0
mov dword [ebx + 0x2e0], 0
mov dword [ebx + 0x30c], 0
mov dword [ebx + 0x310], 0
mov dword [ebx + 0x318], 1
mov word [ebx + 0x31d], 0
mov dword [ebx + 0x320], 0
mov dword [ebx + 0x324], 0
mov dword [ebx + 0x32c], 1
mov word [ebx + 0x331], 0
mov dword [ebx + 0x308], 0
mov dword [ebx + 0x2e8], 0
mov dword [ebx + 0x2f0], 0
mov dword [ebx + 0x2f8], 0
mov dword [ebx + 0x300], 0
mov dword [ebx + 0x338], 0
mov dword [ebx + 0x334], 0
mov dword [ebx + 0x33c], 0
mov dword [ebx + 0x340], 0
mov dword [ebx + 0x724], 0
mov dword [ebx + 0x728], 0
mov dword [ebx + 0x72c], 0
lea eax, [ebx + 0x31c]
mov dword [ebx + 0x314], eax
lea eax, [ebx + 0x330]
mov dword [ebx + 0x328], eax
mov eax, dword [edi + 0x160]
mov dword [ebx + 0x3ec], eax
mov dword [ecx], 0xffffffff
mov dword [ebx + 0xfc], 0xffffffff
mov dword [ebx + 0x100], 0
mov dword [ebx + 0x104], 0
mov dword [ebx + 0x108], 0
mov dword [ebx + 0x10c], 0
mov dword [ebx + 0x110], ecx
lea eax, [ebx + 0xfc]
mov dword [ebx + 0x114], eax
mov dword [ebx + 0x188], 0x67452301
mov dword [ebx + 0x18c], 0xefcdab89
mov dword [ebx + 0x190], 0x98badcfe
mov dword [ebx + 0x194], 0x10325476
mov dword [ebx + 0x17c], 0
mov dword [ebx + 0x180], 0
mov dword [ebx + 0x184], 0
mov dword [ebx + 0x128], 0x67452301
mov dword [ebx + 0x12c], 0xefcdab89
mov dword [ebx + 0x130], 0x98badcfe
mov dword [ebx + 0x134], 0x10325476
mov dword [ebx + 0x138], 0xc3d2e1f0
mov dword [ebx + 0x11c], 0
mov dword [ebx + 0x120], 0
mov dword [ebx + 0x124], 0
mov dword [ebx + 0x1e4], 0x6a09e667
mov dword [ebx + 0x1e8], 0xbb67ae85
mov dword [ebx + 0x1ec], 0x3c6ef372
mov dword [ebx + 0x1f0], 0xa54ff53a
mov dword [ebx + 0x1f4], 0x510e527f
mov dword [ebx + 0x1f8], 0x9b05688c
mov dword [ebx + 0x1fc], 0x1f83d9ab
mov dword [ebx + 0x200], 0x5be0cd19
mov dword [ebx + 0x1d8], 0
mov dword [ebx + 0x1dc], 0
mov dword [ebx + 0x1e0], 0
mov dword [ebx + 0x3d4], 0
mov byte [ebx + 0x3d8], 0
mov eax, dword [edi + 0x15c]
mov dword [ebx + 0x3d0], eax
mov eax, dword [edi]
mov dword [ebp - 4], edi
movzx eax, byte [eax + 2]
mov byte [ebx + 0x34f], al
mov eax, dword [edi]
mov cl, byte [ebx + 0x34f]
movzx eax, byte [eax + 3]
mov byte [ebx + 0x353], al
mov dword [ebx + 4], 0
mov dword [ebx + 0x35a], 0
mov byte [ebx + 0x360], 0
test cl, cl
jne 0x4025c1
mov al, byte [edi + 0x14b]
mov byte [ebx + 0x362], al
jmp 0x4025c8
mov byte [ebx + 0x362], 0
movzx eax, byte [edi + 0x14c]
mov byte [ebx + 0x363], al
movzx eax, byte [edi + 0x14d]
mov byte [ebx + 0x364], al
movzx eax, byte [edi + 0x14e]
mov byte [ebx + 0x365], al
mov dword [ebx + 0x366], 0
mov word [ebx + 0x34c], 0
mov word [ebx + 0x35e], 0
mov byte [ebx + 0x34e], 0
mov byte [ebx + 0x36a], 0
mov dword [ebx + 0xf0], 0
mov word [ebx + 0xf4], 0
movzx eax, byte [edi + 0x147]
mov byte [ebx + 0x348], al
movzx eax, byte [edi + 0x148]
mov byte [ebx + 0x349], al
movzx eax, byte [edi + 0x144]
cmp byte [ebx + 8], 0xfe
mov byte [ebx + 0x350], al
movzx eax, byte [edi + 0x145]
mov byte [ebx + 0x351], al
movzx eax, byte [edi + 0x146]
mov byte [ebx + 0x352], al
movzx eax, byte [edi + 0x149]
mov byte [ebx + 0x354], al
mov word [ebx + 0x355], 0
mov dword [ebx + 0x3dc], 0x4052b0
mov eax, dword [edi + 0x140]
mov dword [ebx + 0x3e0], eax
mov word [ebx + 0x357], 0
sete al
mov byte [ebx + 0x359], al
movzx eax, byte [edi + 0x14f]
mov byte [ebx + 0x36b], al
movzx eax, byte [edi + 0x150]
mov byte [ebx + 0x36c], al
mov byte [ebx + 0x36d], 0
movzx eax, byte [edi + 0x151]
mov byte [ebx + 0x36e], al
mov word [ebx + 0x36f], 0
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x2cc], eax
mov eax, dword [edi + 0x24]
mov dword [ebx + 0x2d0], eax
mov eax, dword [edi + 0x28]
mov dword [ebx + 0x2dc], eax
mov eax, dword [edi + 0x2c]
mov dword [ebx + 0x2e0], eax
mov eax, dword [edi + 0x30]
mov dword [ebx + 0x2d4], eax
mov eax, dword [edi + 0x34]
mov dword [ebx + 0x2d8], eax
test cl, cl
jne 0x402744
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x2e4], eax
mov eax, dword [edi + 0x3c]
mov dword [ebx + 0x2e8], eax
mov eax, dword [edi + 0x40]
mov dword [ebx + 0x2ec], eax
mov eax, dword [edi + 0x44]
mov dword [ebx + 0x2f0], eax
mov word [ebx + 0x344], 0
mov byte [ebx + 0x346], 0
mov dword [ebx + 0x4f4], 0
mov dword [ebx + 0x5f8], 0
mov dword [ebx + 0x3f0], ebx
mov dword [ebx + 0x118], 0
mov dword [ebx + 0x374], 0
mov dword [ebx + 0x730], 0xffffffff
mov dword [ebx + 0x734], 0xffffffff
mov dword [ebx + 0x738], 0xffffffff
mov dword [ebx + 0x73c], 0xffffffff
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x30], 0
mov byte [ebx + 0x20], 0
mov byte [ebx + 0x34], 0
xor eax, eax
lea esi, [edi + 4]
push esi
mov dword [ebx + 0x38], 0xffffffff
mov word [ebx + 0x3c], 0xff
mov byte [ebx + 0x3f], 0
mov dword [ebx + 0x40], eax
mov word [ebx + 0x44], ax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [edi + 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x44c5c4]
push 0x294
test esi, esi
je 0x402831
call esi
mov esi, dword [0x44c5c4]
jmp 0x402836
call fcn.0041bec0
add esp, 4
mov dword [ebx + 0x374], eax
test eax, eax
jne 0x40284f
pop edi
pop esi
mov eax, 0xffffff83
pop ebx
mov esp, ebp
pop ebp
ret
push 0x108
test esi, esi
je 0x40285c
call esi
jmp 0x402861
call fcn.0041bec0
add esp, 4
mov dword [ebx + 0x118], eax
test eax, eax
je 0x402843
mov ecx, eax
call fcn.00418b70
test eax, eax
jne 0x402941
mov eax, dword [0x44c5c4]
push 0xf4
test eax, eax
je 0x40288f
call eax
jmp 0x402894
call fcn.0041bec0
add esp, 4
mov dword [ebx + 0xc], eax
test eax, eax
je 0x402843
lea esi, [edi + 0x4c]
mov edi, eax
mov ecx, 0x3d
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x88
call fcn.004096b0
mov dword [ebx + 0x3d4], eax
test eax, eax
je 0x402843
mov edx, dword [ebp - 4]
mov ecx, eax
mov edx, dword [edx + 0x140]
call fcn.004125c0
mov al, byte [ebx + 0x34f]
test al, al
jne 0x402917
cmp dword [ebx + 0x2d0], 0
je 0x4028ea
cmp dword [ebx + 0x2d8], 0
jne 0x4028f6
pop edi
pop esi
mov eax, 0xffffff27
pop ebx
mov esp, ebp
pop ebp
ret
test al, al
jne 0x402917
movzx eax, byte [ebx + 0x365]
push 0
push eax
movzx eax, byte [ebx + 0x364]
push eax
movzx eax, byte [ebx + 0x362]
push ecx
push eax
jmp 0x40292e
movzx eax, al
push eax
movzx eax, byte [ebx + 0x365]
push eax
movzx eax, byte [ebx + 0x364]
push eax
push ecx
push 1
movzx eax, word [ebx + 8]
push ecx
mov ecx, dword [ebx + 0xc]
push eax
call fcn.004020e0
add esp, 0x1c
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret