Function at 0x516fd0
Capabilities:
Access peb ldr_data
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
call fcn.00404ba4
xor eax, eax
push ebp
push 0x517a07
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
call fcn.004049b4
mov ebx, eax
lea eax, [ebp - 0x14]
mov edx, 0x40
call fcn.00404d40
lea eax, [ebp - 0x14]
call fcn.00404c0c
mov byte [eax + ebx], 0x80
lea eax, [ebp - 0x14]
call fcn.00404c0c
lea eax, [eax + ebx + 1]
mov edx, 0x3f
sub edx, ebx
xor ecx, ecx
call fcn.004032c8
lea eax, [ebp - 0x14]
call fcn.00404c0c
add eax, 0x38
mov edx, ebx
shl edx, 3
mov dword [eax], edx
mov dword [ebp - 0x10], 0x67452301
mov dword [ebp - 0xc], 0xefcdab89
mov dword [ebp - 8], 0x98badcfe
mov eax, 0x10325476
mov dword [ebp - 4], eax
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x14]
call fcn.00404c0c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx]
add eax, 0xd76aa478
mov edx, 7
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
xor eax, esi
and eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 4]
add eax, 0xe8c7b756
mov edx, 0xc
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
xor eax, ebx
and eax, dword [ebp - 0x20]
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 8]
add eax, 0x242070db
mov edx, 0x11
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0xc]
add eax, 0xc1bdceee
mov edx, 0x16
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x10]
add eax, 0xf57c0faf
mov edx, 7
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
xor eax, esi
and eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x14]
add eax, 0x4787c62a
mov edx, 0xc
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
xor eax, ebx
and eax, dword [ebp - 0x20]
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x18]
add eax, 0xa8304613
mov edx, 0x11
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x1c]
add eax, 0xfd469501
mov edx, 0x16
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x20]
add eax, 0x698098d8
mov edx, 7
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
xor eax, esi
and eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x24]
add eax, 0x8b44f7af
mov edx, 0xc
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
xor eax, ebx
and eax, dword [ebp - 0x20]
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x28]
add eax, 0xffff5bb1
mov edx, 0x11
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x2c]
add eax, 0x895cd7be
mov edx, 0x16
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x30]
add eax, 0x6b901122
mov edx, 7
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
xor eax, esi
and eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x34]
add eax, 0xfd987193
mov edx, 0xc
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
xor eax, ebx
and eax, dword [ebp - 0x20]
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x38]
add eax, 0xa679438e
mov edx, 0x11
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x3c]
add eax, 0x49b40821
mov edx, 0x16
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
and eax, dword [ebp - 0x20]
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 4]
add eax, 0xf61e2562
mov edx, 5
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
and eax, edi
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x18]
add eax, 0xc040b340
mov edx, 9
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, esi
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x2c]
add eax, 0x265e5a51
mov edx, 0xe
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, ebx
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx]
add eax, 0xe9b6c7aa
mov edx, 0x14
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
and eax, dword [ebp - 0x20]
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x14]
add eax, 0xd62f105d
mov edx, 5
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
and eax, edi
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x28]
add eax, 0x2441453
mov edx, 9
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, esi
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x3c]
add eax, 0xd8a1e681
mov edx, 0xe
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, ebx
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x10]
add eax, 0xe7d3fbc8
mov edx, 0x14
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
and eax, dword [ebp - 0x20]
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x24]
add eax, 0x21e1cde6
mov edx, 5
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
and eax, edi
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x38]
add eax, 0xc33707d6
mov edx, 9
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, esi
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0xc]
add eax, 0xf4d50d87
mov edx, 0xe
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, ebx
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x20]
add eax, 0x455a14ed
mov edx, 0x14
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
and eax, dword [ebp - 0x20]
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x34]
add eax, 0xa9e3e905
mov edx, 5
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
and eax, edi
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 8]
add eax, 0xfcefa3f8
mov edx, 9
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
and eax, esi
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x1c]
add eax, 0x676f02d9
mov edx, 0xe
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
and eax, ebx
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x30]
add eax, 0x8d2a4c8a
mov edx, 0x14
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x14]
add eax, 0xfffa3942
mov edx, 4
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x20]
add eax, 0x8771f681
mov edx, 0xb
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x2c]
add eax, 0x6d9d6122
mov edx, 0x10
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x38]
add eax, 0xfde5380c
mov edx, 0x17
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 4]
add eax, 0xa4beea44
mov edx, 4
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x10]
add eax, 0x4bdecfa9
mov edx, 0xb
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x1c]
add eax, 0xf6bb4b60
mov edx, 0x10
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x28]
add eax, 0xbebfbc70
mov edx, 0x17
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x34]
add eax, 0x289b7ec6
mov edx, 4
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx]
add eax, 0xeaa127fa
mov edx, 0xb
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0xc]
add eax, 0xd4ef3085
mov edx, 0x10
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x18]
add eax, 0x4881d05
mov edx, 0x17
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, edi
xor eax, esi
xor eax, dword [ebp - 0x20]
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x24]
add eax, 0xd9d4d039
mov edx, 4
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, esi
xor eax, ebx
xor eax, edi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x30]
add eax, 0xe6db99e5
mov edx, 0xb
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, ebx
xor eax, esi
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x3c]
add eax, 0x1fa27cf8
mov edx, 0x10
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, dword [ebp - 0x20]
xor eax, edi
xor eax, ebx
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 8]
add eax, 0xc4ac5665
mov edx, 0x17
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, dword [ebp - 0x20]
not eax
or eax, esi
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx]
add eax, 0xf4292244
mov edx, 6
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
not eax
or eax, ebx
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x1c]
add eax, 0x432aff97
mov edx, 0xa
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
not eax
or eax, dword [ebp - 0x20]
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x38]
add eax, 0xab9423a7
mov edx, 0xf
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, ebx
not eax
or eax, edi
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x14]
add eax, 0xfc93a039
mov edx, 0x15
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, dword [ebp - 0x20]
not eax
or eax, esi
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x30]
add eax, 0x655b59c3
mov edx, 6
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
not eax
or eax, ebx
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0xc]
add eax, 0x8f0ccc92
mov edx, 0xa
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
not eax
or eax, dword [ebp - 0x20]
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x28]
add eax, 0xffeff47d
mov edx, 0xf
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, ebx
not eax
or eax, edi
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 4]
add eax, 0x85845dd1
mov edx, 0x15
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, dword [ebp - 0x20]
not eax
or eax, esi
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x20]
add eax, 0x6fa87e4f
mov edx, 6
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
not eax
or eax, ebx
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x3c]
add eax, 0xfe2ce6e0
mov edx, 0xa
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
not eax
or eax, dword [ebp - 0x20]
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x18]
add eax, 0xa3014314
mov edx, 0xf
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, ebx
not eax
or eax, edi
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x34]
add eax, 0x4e0811a1
mov edx, 0x15
call fcn.00516fc8
add eax, edi
mov esi, eax
mov eax, dword [ebp - 0x20]
not eax
or eax, esi
xor eax, edi
add eax, ebx
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x10]
add eax, 0xf7537e82
mov edx, 6
call fcn.00516fc8
add eax, esi
mov ebx, eax
mov eax, edi
not eax
or eax, ebx
xor eax, esi
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x2c]
add eax, 0xbd3af235
mov edx, 0xa
call fcn.00516fc8
add eax, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
not eax
or eax, dword [ebp - 0x20]
xor eax, ebx
add eax, edi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 8]
add eax, 0x2ad7d2bb
mov edx, 0xf
call fcn.00516fc8
add eax, dword [ebp - 0x20]
mov edi, eax
mov eax, ebx
not eax
or eax, edi
xor eax, dword [ebp - 0x20]
add eax, esi
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x24]
add eax, 0xeb86d391
mov edx, 0x15
call fcn.00516fc8
add eax, edi
mov esi, eax
add dword [ebp - 0x10], ebx
add dword [ebp - 0xc], esi
add dword [ebp - 8], edi
mov eax, dword [ebp - 0x20]
add dword [ebp - 4], eax
movzx eax, word [ebp - 0x10]
mov eax, dword [eax*4 + 0x5270d4]
call fcn.00404bb4
call fcn.00409c80
mov edx, eax
mov eax, dword [ebp - 0x18]
call fcn.004048ec
mov esi, 7
lea ebx, [ebp - 0xe]
movzx eax, word [ebx]
mov eax, dword [eax*4 + 0x5270d4]
call fcn.00404bb4
call fcn.00409c80
mov edx, eax
lea eax, [ebp - 0x24]
call fcn.004048ec
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
call fcn.004049bc
mov eax, dword [ebp - 0x18]
add ebx, 2
dec esi
jne 0x5179b7
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x517a0e
lea eax, [ebp - 0x24]
call fcn.004046f4
lea eax, [ebp - 0x14]
call fcn.004046f4
ret