Function at 0x51557b
Capabilities:
Enumerate pe sections

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea eax, [ebp - 0x128]
mov ebx, ecx
lea edi, [ebp - 0x128]
sub esp, 0x15c
mov dword [esp], eax
call fcn.00433e70
movq xmm2, qword [0x576458]
movq qword [ebp - 0x130], xmm2
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
mov dword [ebx + 0x38], eax
lea eax, [ebx + 0x470]
mov dword [ebx + 0x3c], edx
mov dword [esp], edi
mov ecx, eax
mov dword [ebp - 0x14c], eax
call fcn.00413120
sub esp, 4
test al, al
jne 0x515f2e
lea esi, [ebx + 0x2f0]
mov edi, dword [ebp - 0x124]
lea ecx, [ebx + 0x538]
mov eax, dword [ebx + 0x474]
mov dword [ebp - 0x134], esi
lea esi, [ebx + 0x490]
mov dword [ebp - 0x140], ecx
cmp edi, 0xffffffff
mov dword [ebp - 0x13c], edi
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x148], esi
lea esi, [ebx + 0x4f8]
mov dword [ebp - 0x144], esi
je 0x515f45
cmp eax, 0xffffffff
jne 0x516800
mov eax, dword [ebp - 0x13c]
test eax, eax
js 0x516800
lea eax, [ebp - 0x60]
lea esi, [ebx + 0x2a8]
mov dword [esp + 8], 0x40
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x516800
lea eax, [ebx + 0x60]
lea edi, [ebx + 0x2f0]
mov dword [ebp - 0x138], eax
mov ecx, eax
neg eax
and eax, 0xf
mov dword [ebp - 0x154], edi
mov edi, eax
je 0x516ba8
movzx eax, byte [ebx + 0x60]
cmp edi, 1
mov byte [ebx + 0x2f0], al
lea eax, [ebx + 0x2f1]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x61]
mov dword [ebp - 0x138], eax
je 0x516be1
movzx eax, byte [ebx + 0x61]
cmp edi, 2
mov byte [ebx + 0x2f1], al
lea eax, [ebx + 0x2f2]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x62]
mov dword [ebp - 0x138], eax
je 0x516c86
movzx eax, byte [ebx + 0x62]
cmp edi, 3
mov byte [ebx + 0x2f2], al
lea eax, [ebx + 0x2f3]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x63]
mov dword [ebp - 0x138], eax
je 0x516c77
movzx eax, byte [ebx + 0x63]
cmp edi, 4
mov byte [ebx + 0x2f3], al
lea eax, [ebx + 0x2f4]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x64]
mov dword [ebp - 0x138], eax
je 0x516c68
movzx eax, byte [ebx + 0x64]
cmp edi, 5
mov byte [ebx + 0x2f4], al
lea eax, [ebx + 0x2f5]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x65]
mov dword [ebp - 0x138], eax
je 0x516b45
movzx eax, byte [ebx + 0x65]
cmp edi, 6
mov byte [ebx + 0x2f5], al
lea eax, [ebx + 0x2f6]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x66]
mov dword [ebp - 0x138], eax
je 0x516b36
movzx eax, byte [ebx + 0x66]
cmp edi, 7
mov byte [ebx + 0x2f6], al
lea eax, [ebx + 0x2f7]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x67]
mov dword [ebp - 0x138], eax
je 0x516ddc
movzx eax, byte [ebx + 0x67]
cmp edi, 8
mov byte [ebx + 0x2f7], al
lea eax, [ebx + 0x2f8]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x68]
mov dword [ebp - 0x138], eax
je 0x516ebd
movzx eax, byte [ebx + 0x68]
cmp edi, 9
mov byte [ebx + 0x2f8], al
lea eax, [ebx + 0x2f9]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x69]
mov dword [ebp - 0x138], eax
je 0x516eae
movzx eax, byte [ebx + 0x69]
cmp edi, 0xa
mov byte [ebx + 0x2f9], al
lea eax, [ebx + 0x2fa]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x6a]
mov dword [ebp - 0x138], eax
je 0x516e9f
movzx eax, byte [ebx + 0x6a]
cmp edi, 0xb
mov byte [ebx + 0x2fa], al
lea eax, [ebx + 0x2fb]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x6b]
mov dword [ebp - 0x138], eax
je 0x516e90
movzx eax, byte [ebx + 0x6b]
cmp edi, 0xc
mov byte [ebx + 0x2fb], al
lea eax, [ebx + 0x2fc]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x6c]
mov dword [ebp - 0x138], eax
je 0x516e81
movzx eax, byte [ebx + 0x6c]
cmp edi, 0xd
mov byte [ebx + 0x2fc], al
lea eax, [ebx + 0x2fd]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x6d]
mov dword [ebp - 0x138], eax
je 0x516e72
movzx eax, byte [ebx + 0x6d]
cmp edi, 0xe
mov byte [ebx + 0x2fd], al
lea eax, [ebx + 0x2fe]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x6e]
mov dword [ebp - 0x138], eax
je 0x516dcd
movzx eax, byte [ebx + 0x6e]
mov dword [ebp - 0x13c], 0x171
mov byte [ebx + 0x2fe], al
lea eax, [ebx + 0x2ff]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x6f]
mov dword [ebp - 0x138], eax
mov eax, 0x180
add ecx, edi
sub eax, edi
mov edx, eax
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x154]
shr edx, 4
add eax, edi
xor edi, edi
nop
lea esi, [esi]
movdqa xmm3, xmmword [ecx]
add edi, 1
add ecx, 0x10
add eax, 0x10
movups xmmword [eax - 0x10], xmm3
cmp edx, edi
ja 0x515910
mov edi, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x134]
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x13c]
and edi, 0xfffffff0
sub edx, edi
add eax, edi
add ecx, edi
cmp dword [ebp - 0x150], edi
mov dword [ebp - 0x134], edx
je 0x515a13
mov edi, edx
movzx edx, byte [eax]
cmp edi, 1
mov byte [ecx], dl
je 0x515a13
movzx edx, byte [eax + 1]
cmp edi, 2
mov byte [ecx + 1], dl
je 0x515a13
movzx edx, byte [eax + 2]
cmp edi, 3
mov byte [ecx + 2], dl
je 0x515a13
movzx edx, byte [eax + 3]
cmp edi, 4
mov byte [ecx + 3], dl
je 0x515a13
movzx edx, byte [eax + 4]
cmp edi, 5
mov byte [ecx + 4], dl
je 0x515a13
movzx edx, byte [eax + 5]
cmp edi, 6
mov byte [ecx + 5], dl
je 0x515a13
movzx edx, byte [eax + 6]
cmp edi, 7
mov byte [ecx + 6], dl
je 0x515a13
movzx edx, byte [eax + 7]
cmp edi, 8
mov byte [ecx + 7], dl
je 0x515a13
movzx edx, byte [eax + 8]
cmp edi, 9
mov byte [ecx + 8], dl
je 0x515a13
movzx edx, byte [eax + 9]
cmp edi, 0xa
mov byte [ecx + 9], dl
je 0x515a13
movzx edx, byte [eax + 0xa]
cmp edi, 0xb
mov byte [ecx + 0xa], dl
je 0x515a13
movzx edx, byte [eax + 0xb]
cmp edi, 0xc
mov byte [ecx + 0xb], dl
je 0x515a13
movzx edx, byte [eax + 0xc]
cmp edi, 0xd
mov byte [ecx + 0xc], dl
je 0x515a13
movzx edx, byte [eax + 0xd]
cmp edi, 0xe
mov byte [ecx + 0xd], dl
je 0x515a13
movzx eax, byte [eax + 0xe]
mov byte [ecx + 0xe], al
movzx eax, byte [ebx + 0x1e0]
lea edi, [ebx + 0x200]
movdqu xmm7, xmmword [ebx + 0x1f0]
movups xmmword [ebx + 0x480], xmm7
mov byte [ebx + 0x470], al
mov eax, dword [ebx + 0x1e4]
mov dword [ebx + 0x474], eax
mov eax, dword [ebx + 0x1e8]
mov dword [ebx + 0x478], eax
mov eax, dword [ebx + 0x1ec]
mov dword [ebx + 0x47c], eax
lea eax, [ebx + 0x1e0]
mov dword [ebp - 0x134], eax
mov eax, edi
neg eax
and eax, 0xf
mov ecx, eax
je 0x516b63
movzx eax, byte [ebx + 0x200]
cmp ecx, 1
lea edi, [ebx + 0x201]
mov byte [ebx + 0x490], al
lea eax, [ebx + 0x491]
mov dword [ebp - 0x148], eax
je 0x516c1d
movzx eax, byte [ebx + 0x201]
cmp ecx, 2
lea edi, [ebx + 0x202]
mov byte [ebx + 0x491], al
lea eax, [ebx + 0x492]
mov dword [ebp - 0x148], eax
je 0x516c0e
movzx eax, byte [ebx + 0x202]
cmp ecx, 3
lea edi, [ebx + 0x203]
mov byte [ebx + 0x492], al
lea eax, [ebx + 0x493]
mov dword [ebp - 0x148], eax
je 0x516d37
movzx eax, byte [ebx + 0x203]
cmp ecx, 4
lea edi, [ebx + 0x204]
mov byte [ebx + 0x493], al
lea eax, [ebx + 0x494]
mov dword [ebp - 0x148], eax
je 0x516d28
movzx eax, byte [ebx + 0x204]
cmp ecx, 5
lea edi, [ebx + 0x205]
mov byte [ebx + 0x494], al
lea eax, [ebx + 0x495]
mov dword [ebp - 0x148], eax
je 0x516d19
movzx eax, byte [ebx + 0x205]
cmp ecx, 6
lea edi, [ebx + 0x206]
mov byte [ebx + 0x495], al
lea eax, [ebx + 0x496]
mov dword [ebp - 0x148], eax
je 0x516d0a
movzx eax, byte [ebx + 0x206]
cmp ecx, 7
lea edi, [ebx + 0x207]
mov byte [ebx + 0x496], al
lea eax, [ebx + 0x497]
mov dword [ebp - 0x148], eax
je 0x516d73
movzx eax, byte [ebx + 0x207]
cmp ecx, 8
lea edi, [ebx + 0x208]
mov byte [ebx + 0x497], al
lea eax, [ebx + 0x498]
mov dword [ebp - 0x148], eax
je 0x516d64
movzx eax, byte [ebx + 0x208]
cmp ecx, 9
lea edi, [ebx + 0x209]
mov byte [ebx + 0x498], al
lea eax, [ebx + 0x499]
mov dword [ebp - 0x148], eax
je 0x516d55
movzx eax, byte [ebx + 0x209]
cmp ecx, 0xa
lea edi, [ebx + 0x20a]
mov byte [ebx + 0x499], al
lea eax, [ebx + 0x49a]
mov dword [ebp - 0x148], eax
je 0x516d46
movzx eax, byte [ebx + 0x20a]
cmp ecx, 0xb
lea edi, [ebx + 0x20b]
mov byte [ebx + 0x49a], al
lea eax, [ebx + 0x49b]
mov dword [ebp - 0x148], eax
je 0x516e27
movzx eax, byte [ebx + 0x20b]
cmp ecx, 0xc
lea edi, [ebx + 0x20c]
mov byte [ebx + 0x49b], al
lea eax, [ebx + 0x49c]
mov dword [ebp - 0x148], eax
je 0x516e18
movzx eax, byte [ebx + 0x20c]
cmp ecx, 0xd
lea edi, [ebx + 0x20d]
mov byte [ebx + 0x49c], al
lea eax, [ebx + 0x49d]
mov dword [ebp - 0x148], eax
je 0x516e09
movzx eax, byte [ebx + 0x20d]
cmp ecx, 0xe
lea edi, [ebx + 0x20e]
mov byte [ebx + 0x49d], al
lea eax, [ebx + 0x49e]
mov dword [ebp - 0x148], eax
je 0x516dfa
movzx eax, byte [ebx + 0x20e]
lea edi, [ebx + 0x20f]
mov dword [ebp - 0x134], 0x51
mov byte [ebx + 0x49e], al
lea eax, [ebx + 0x49f]
mov dword [ebp - 0x148], eax
mov eax, 0x60
sub eax, ecx
mov edx, eax
mov dword [ebp - 0x138], eax
lea eax, [ecx + 0x20]
lea ecx, [ebx + 0x1e0]
shr edx, 4
add ecx, eax
add eax, dword [ebp - 0x14c]
cmp edx, 5
movdqa xmm4, xmmword [ecx]
movups xmmword [eax], xmm4
movdqa xmm4, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm4
movdqa xmm5, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm5
movdqa xmm6, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm6
movdqa xmm7, xmmword [ecx + 0x40]
movups xmmword [eax + 0x40], xmm7
je 0x515d29
movdqa xmm5, xmmword [ecx + 0x50]
movups xmmword [eax + 0x50], xmm5
mov eax, dword [ebp - 0x138]
mov edx, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x148]
and eax, 0xfffffff0
sub edx, eax
add edi, eax
mov dword [ebp - 0x134], edx
add ecx, eax
cmp dword [ebp - 0x138], eax
je 0x515e11
mov eax, edx
movzx edx, byte [edi]
cmp eax, 1
mov byte [ecx], dl
je 0x515e11
movzx edx, byte [edi + 1]
cmp eax, 2
mov byte [ecx + 1], dl
je 0x515e11
movzx edx, byte [edi + 2]
cmp eax, 3
mov byte [ecx + 2], dl
je 0x515e11
movzx edx, byte [edi + 3]
cmp eax, 4
mov byte [ecx + 3], dl
je 0x515e11
movzx edx, byte [edi + 4]
cmp eax, 5
mov byte [ecx + 4], dl
je 0x515e11
movzx edx, byte [edi + 5]
cmp eax, 6
mov byte [ecx + 5], dl
je 0x515e11
movzx edx, byte [edi + 6]
cmp eax, 7
mov byte [ecx + 6], dl
je 0x515e11
movzx edx, byte [edi + 7]
cmp eax, 8
mov byte [ecx + 7], dl
je 0x515e11
movzx edx, byte [edi + 8]
cmp eax, 9
mov byte [ecx + 8], dl
je 0x515e11
movzx edx, byte [edi + 9]
cmp eax, 0xa
mov byte [ecx + 9], dl
je 0x515e11
movzx edx, byte [edi + 0xa]
cmp eax, 0xb
mov byte [ecx + 0xa], dl
je 0x515e11
movzx edx, byte [edi + 0xb]
cmp eax, 0xc
mov byte [ecx + 0xb], dl
je 0x515e11
movzx edx, byte [edi + 0xc]
cmp eax, 0xd
mov byte [ecx + 0xc], dl
je 0x515e11
movzx edx, byte [edi + 0xd]
cmp eax, 0xe
mov byte [ecx + 0xd], dl
je 0x515e11
movzx eax, byte [edi + 0xe]
mov byte [ecx + 0xe], al
mov ecx, dword [ebx + 0x268]
mov eax, dword [ebx + 0x260]
mov edx, dword [ebx + 0x264]
mov edi, dword [ebp - 0x144]
mov dword [ebx + 0x4f8], ecx
mov ecx, dword [ebx + 0x26c]
mov dword [ebx + 0x4f0], eax
mov dword [ebx + 0x4f4], edx
mov dword [edi + 4], ecx
mov ecx, dword [ebx + 0x270]
mov dword [edi + 8], ecx
mov ecx, dword [ebx + 0x274]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebx + 0x278]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebx + 0x27c]
mov dword [edi + 0x14], ecx
mov ecx, dword [ebx + 0x280]
mov dword [edi + 0x18], ecx
mov ecx, dword [ebx + 0x284]
mov dword [edi + 0x1c], ecx
mov ecx, dword [ebx + 0x288]
mov dword [edi + 0x20], ecx
mov ecx, dword [ebx + 0x28c]
mov dword [edi + 0x24], ecx
mov ecx, dword [ebx + 0x290]
mov dword [edi + 0x28], ecx
mov ecx, dword [ebx + 0x294]
mov dword [edi + 0x2c], ecx
mov ecx, dword [ebx + 0x298]
mov dword [edi + 0x30], ecx
mov ecx, dword [ebx + 0x29c]
mov dword [edi + 0x34], ecx
mov ecx, dword [ebx + 0x2a0]
mov dword [edi + 0x38], ecx
mov eax, dword [ebx + 0x2a4]
mov dword [edi + 0x3c], eax
mov eax, dword [ebx + 0x2a8]
mov dword [ebx + 0x538], eax
mov ebx, dword [ebp - 0x140]
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0x1c], eax
mov eax, dword [esi + 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [ebx + 0x24], eax
mov eax, dword [esi + 0x28]
mov dword [ebx + 0x28], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ebx + 0x30], eax
mov eax, dword [esi + 0x34]
mov dword [ebx + 0x34], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx + 0x3c], eax
lea ecx, [ebp - 0x128]
call fcn.00412370
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
test eax, eax
lea edi, [ebx + 0x494]
js 0x516806
lea eax, [ebx + 0x2f0]
lea edi, [ebx + 0x60]
neg eax
mov dword [ebp - 0x154], edi
and eax, 0xf
mov ecx, eax
je 0x516bc6
movzx eax, byte [ebx + 0x2f0]
cmp ecx, 1
lea edi, [ebx + 0x61]
mov byte [ebx + 0x60], al
lea eax, [ebx + 0x2f1]
mov dword [ebp - 0x148], eax
je 0x516bb7
movzx eax, byte [ebx + 0x2f1]
cmp ecx, 2
lea edi, [ebx + 0x62]
mov byte [ebx + 0x61], al
lea eax, [ebx + 0x2f2]
mov dword [ebp - 0x148], eax
je 0x516bff
movzx eax, byte [ebx + 0x2f2]
cmp ecx, 3
lea edi, [ebx + 0x63]
mov byte [ebx + 0x62], al
lea eax, [ebx + 0x2f3]
mov dword [ebp - 0x148], eax
je 0x516bf0
movzx eax, byte [ebx + 0x2f3]
cmp ecx, 4
lea edi, [ebx + 0x64]
mov byte [ebx + 0x63], al
lea eax, [ebx + 0x2f4]
mov dword [ebp - 0x148], eax
je 0x516c59
movzx eax, byte [ebx + 0x2f4]
cmp ecx, 5
lea edi, [ebx + 0x65]
mov byte [ebx + 0x64], al
lea eax, [ebx + 0x2f5]
mov dword [ebp - 0x148], eax
je 0x516c4a
movzx eax, byte [ebx + 0x2f5]
cmp ecx, 6
lea edi, [ebx + 0x66]
mov byte [ebx + 0x65], al
lea eax, [ebx + 0x2f6]
mov dword [ebp - 0x148], eax
je 0x516c3b
movzx eax, byte [ebx + 0x2f6]
cmp ecx, 7
lea edi, [ebx + 0x67]
mov byte [ebx + 0x66], al
lea eax, [ebx + 0x2f7]
mov dword [ebp - 0x148], eax
je 0x516c2c
movzx eax, byte [ebx + 0x2f7]
cmp ecx, 8
lea edi, [ebx + 0x68]
mov byte [ebx + 0x67], al
lea eax, [ebx + 0x2f8]
mov dword [ebp - 0x148], eax
je 0x516b54
movzx eax, byte [ebx + 0x2f8]
cmp ecx, 9
lea edi, [ebx + 0x69]
mov byte [ebx + 0x68], al
lea eax, [ebx + 0x2f9]
mov dword [ebp - 0x148], eax
je 0x516dbe
movzx eax, byte [ebx + 0x2f9]
cmp ecx, 0xa
lea edi, [ebx + 0x6a]
mov byte [ebx + 0x69], al
lea eax, [ebx + 0x2fa]
mov dword [ebp - 0x148], eax
je 0x516edb
movzx eax, byte [ebx + 0x2fa]
cmp ecx, 0xb
lea edi, [ebx + 0x6b]
mov byte [ebx + 0x6a], al
lea eax, [ebx + 0x2fb]
mov dword [ebp - 0x148], eax
je 0x516ecc
movzx eax, byte [ebx + 0x2fb]
cmp ecx, 0xc
lea edi, [ebx + 0x6c]
mov byte [ebx + 0x6b], al
lea eax, [ebx + 0x2fc]
mov dword [ebp - 0x148], eax
je 0x516d91
movzx eax, byte [ebx + 0x2fc]
cmp ecx, 0xd
lea edi, [ebx + 0x6d]
mov byte [ebx + 0x6c], al
lea eax, [ebx + 0x2fd]
mov dword [ebp - 0x148], eax
je 0x516d82
movzx eax, byte [ebx + 0x2fd]
cmp ecx, 0xe
lea edi, [ebx + 0x6e]
mov byte [ebx + 0x6d], al
lea eax, [ebx + 0x2fe]
mov dword [ebp - 0x148], eax
je 0x516deb
movzx eax, byte [ebx + 0x2fe]
lea edi, [ebx + 0x6f]
mov dword [ebp - 0x150], 0x171
mov byte [ebx + 0x6e], al
lea eax, [ebx + 0x2ff]
mov dword [ebp - 0x148], eax
mov eax, 0x180
sub eax, ecx
mov edx, eax
mov dword [ebp - 0x158], eax
lea eax, [ebx + 0x2f0]
shr edx, 4
lea esi, [eax + ecx]
mov eax, dword [ebp - 0x154]
add eax, ecx
xor ecx, ecx
movdqa xmm0, xmmword [esi]
add ecx, 1
add esi, 0x10
add eax, 0x10
movups xmmword [eax - 0x10], xmm0
cmp edx, ecx
ja 0x516193
mov edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x148]
mov esi, edx
and esi, 0xfffffff0
add ecx, esi
mov dword [ebp - 0x148], esi
lea eax, [edi + esi]
mov edi, dword [ebp - 0x148]
mov esi, dword [ebp - 0x150]
sub esi, edi
cmp edx, edi
je 0x516293
movzx edx, byte [ecx]
cmp esi, 1
mov byte [eax], dl
je 0x516293
movzx edx, byte [ecx + 1]
cmp esi, 2
mov byte [eax + 1], dl
je 0x516293
movzx edx, byte [ecx + 2]
cmp esi, 3
mov byte [eax + 2], dl
je 0x516293
movzx edx, byte [ecx + 3]
cmp esi, 4
mov byte [eax + 3], dl
je 0x516293
movzx edx, byte [ecx + 4]
cmp esi, 5
mov byte [eax + 4], dl
je 0x516293
movzx edx, byte [ecx + 5]
cmp esi, 6
mov byte [eax + 5], dl
je 0x516293
movzx edx, byte [ecx + 6]
cmp esi, 7
mov byte [eax + 6], dl
je 0x516293
movzx edx, byte [ecx + 7]
cmp esi, 8
mov byte [eax + 7], dl
je 0x516293
movzx edx, byte [ecx + 8]
cmp esi, 9
mov byte [eax + 8], dl
je 0x516293
movzx edx, byte [ecx + 9]
cmp esi, 0xa
mov byte [eax + 9], dl
je 0x516293
movzx edx, byte [ecx + 0xa]
cmp esi, 0xb
mov byte [eax + 0xa], dl
je 0x516293
movzx edx, byte [ecx + 0xb]
cmp esi, 0xc
mov byte [eax + 0xb], dl
je 0x516293
movzx edx, byte [ecx + 0xc]
cmp esi, 0xd
mov byte [eax + 0xc], dl
je 0x516293
movzx edx, byte [ecx + 0xd]
cmp esi, 0xe
mov byte [eax + 0xd], dl
je 0x516293
movzx ecx, byte [ecx + 0xe]
mov byte [eax + 0xe], cl
movzx eax, byte [ebx + 0x470]
lea esi, [ebx + 0x200]
movdqu xmm4, xmmword [ebx + 0x480]
movups xmmword [ebx + 0x1f0], xmm4
mov byte [ebx + 0x1e0], al
mov eax, dword [ebx + 0x474]
mov dword [ebx + 0x1e4], eax
mov eax, dword [ebx + 0x478]
mov dword [ebx + 0x1e8], eax
mov eax, dword [ebx + 0x47c]
mov dword [ebx + 0x1ec], eax
lea eax, [ebx + 0x1e0]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x138]
neg eax
and eax, 0xf
mov ecx, eax
je 0x516b72
movzx eax, byte [ebx + 0x490]
cmp ecx, 1
lea esi, [ebx + 0x201]
mov byte [ebx + 0x200], al
lea eax, [ebx + 0x491]
mov dword [ebp - 0x148], eax
je 0x516b93
movzx eax, byte [ebx + 0x491]
cmp ecx, 2
lea esi, [ebx + 0x202]
mov byte [ebx + 0x201], al
lea eax, [ebx + 0x492]
mov dword [ebp - 0x148], eax
je 0x516c95
movzx eax, byte [ebx + 0x492]
cmp ecx, 3
lea esi, [ebx + 0x203]
mov byte [ebx + 0x202], al
lea eax, [ebx + 0x493]
mov dword [ebp - 0x148], eax
je 0x516cb9
movzx eax, byte [ebx + 0x493]
lea edi, [ebx + 0x494]
cmp ecx, 4
lea esi, [ebx + 0x204]
mov dword [ebp - 0x148], edi
mov byte [ebx + 0x203], al
je 0x516caa
movzx eax, byte [ebx + 0x494]
cmp ecx, 5
lea esi, [ebx + 0x205]
mov byte [ebx + 0x204], al
lea eax, [ebx + 0x495]
mov dword [ebp - 0x148], eax
je 0x516cfb
movzx eax, byte [ebx + 0x495]
cmp ecx, 6
lea esi, [ebx + 0x206]
mov byte [ebx + 0x205], al
lea eax, [ebx + 0x496]
mov dword [ebp - 0x148], eax
je 0x516cec
movzx eax, byte [ebx + 0x496]
cmp ecx, 7
lea esi, [ebx + 0x207]
mov byte [ebx + 0x206], al
lea eax, [ebx + 0x497]
mov dword [ebp - 0x148], eax
je 0x516cdd
movzx eax, byte [ebx + 0x497]
cmp ecx, 8
lea esi, [ebx + 0x208]
mov byte [ebx + 0x207], al
lea eax, [ebx + 0x498]
mov dword [ebp - 0x148], eax
je 0x516cce
movzx eax, byte [ebx + 0x498]
cmp ecx, 9
lea esi, [ebx + 0x209]
mov byte [ebx + 0x208], al
lea eax, [ebx + 0x499]
mov dword [ebp - 0x148], eax
je 0x516e63
movzx eax, byte [ebx + 0x499]
cmp ecx, 0xa
lea esi, [ebx + 0x20a]
mov byte [ebx + 0x209], al
lea eax, [ebx + 0x49a]
mov dword [ebp - 0x148], eax
je 0x516e54
movzx eax, byte [ebx + 0x49a]
cmp ecx, 0xb
lea esi, [ebx + 0x20b]
mov byte [ebx + 0x20a], al
lea eax, [ebx + 0x49b]
mov dword [ebp - 0x148], eax
je 0x516e45
movzx eax, byte [ebx + 0x49b]
cmp ecx, 0xc
lea esi, [ebx + 0x20c]
mov byte [ebx + 0x20b], al
lea eax, [ebx + 0x49c]
mov dword [ebp - 0x148], eax
je 0x516e36
movzx eax, byte [ebx + 0x49c]
cmp ecx, 0xd
lea esi, [ebx + 0x20d]
mov byte [ebx + 0x20c], al
lea eax, [ebx + 0x49d]
mov dword [ebp - 0x148], eax
je 0x516daf
movzx eax, byte [ebx + 0x49d]
cmp ecx, 0xe
lea esi, [ebx + 0x20e]
mov byte [ebx + 0x20d], al
lea eax, [ebx + 0x49e]
mov dword [ebp - 0x148], eax
je 0x516da0
movzx eax, byte [ebx + 0x49e]
lea esi, [ebx + 0x20f]
mov dword [ebp - 0x150], 0x51
mov byte [ebx + 0x20e], al
lea eax, [ebx + 0x49f]
mov dword [ebp - 0x148], eax
mov eax, 0x60
sub eax, ecx
mov edx, eax
mov dword [ebp - 0x158], eax
lea eax, [ecx + 0x20]
mov ecx, dword [ebp - 0x14c]
shr edx, 4
add ecx, eax
add eax, dword [ebp - 0x154]
cmp edx, 5
movdqa xmm5, xmmword [ecx]
movups xmmword [eax], xmm5
movdqa xmm6, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm6
movdqa xmm7, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm7
movdqa xmm5, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm5
movdqa xmm6, xmmword [ecx + 0x40]
movups xmmword [eax + 0x40], xmm6
je 0x5165ad
movdqa xmm4, xmmword [ecx + 0x50]
movups xmmword [eax + 0x50], xmm4
mov edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x148]
mov eax, edx
and eax, 0xfffffff0
mov dword [ebp - 0x148], eax
add ecx, eax
add eax, esi
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x150]
sub eax, dword [ebp - 0x148]
mov esi, eax
mov eax, dword [ebp - 0x148]
cmp edx, eax
je 0x5166a9
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x14c]
cmp esi, 1
mov byte [eax], dl
je 0x5166a9
movzx edx, byte [ecx + 1]
cmp esi, 2
mov byte [eax + 1], dl
je 0x5166a9
movzx edx, byte [ecx + 2]
cmp esi, 3
mov byte [eax + 2], dl
je 0x5166a9
movzx edx, byte [ecx + 3]
cmp esi, 4
mov byte [eax + 3], dl
je 0x5166a9
movzx edx, byte [ecx + 4]
cmp esi, 5
mov byte [eax + 4], dl
je 0x5166a9
movzx edx, byte [ecx + 5]
cmp esi, 6
mov byte [eax + 5], dl
je 0x5166a9
movzx edx, byte [ecx + 6]
cmp esi, 7
mov byte [eax + 6], dl
je 0x5166a9
movzx edx, byte [ecx + 7]
cmp esi, 8
mov byte [eax + 7], dl
je 0x5166a9
movzx edx, byte [ecx + 8]
cmp esi, 9
mov byte [eax + 8], dl
je 0x5166a9
movzx edx, byte [ecx + 9]
cmp esi, 0xa
mov byte [eax + 9], dl
je 0x5166a9
movzx edx, byte [ecx + 0xa]
cmp esi, 0xb
mov byte [eax + 0xa], dl
je 0x5166a9
movzx edx, byte [ecx + 0xb]
cmp esi, 0xc
mov byte [eax + 0xb], dl
je 0x5166a9
movzx edx, byte [ecx + 0xc]
cmp esi, 0xd
mov byte [eax + 0xc], dl
je 0x5166a9
movzx edx, byte [ecx + 0xd]
cmp esi, 0xe
mov byte [eax + 0xd], dl
je 0x5166a9
movzx ecx, byte [ecx + 0xe]
mov byte [eax + 0xe], cl
mov esi, dword [ebp - 0x144]
mov ecx, dword [ebx + 0x4f8]
mov eax, dword [ebx + 0x4f0]
mov edx, dword [ebx + 0x4f4]
mov dword [ebx + 0x268], ecx
mov dword [ebx + 0x260], eax
mov dword [ebx + 0x264], edx
mov ecx, dword [esi + 4]
mov dword [ebx + 0x26c], ecx
mov ecx, dword [esi + 8]
mov dword [ebx + 0x270], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0x274], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0x278], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x27c], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebx + 0x280], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 0x284], ecx
mov ecx, dword [esi + 0x20]
mov dword [ebx + 0x288], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebx + 0x28c], ecx
mov ecx, dword [esi + 0x28]
mov dword [ebx + 0x290], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x294], ecx
mov ecx, dword [esi + 0x30]
mov dword [ebx + 0x298], ecx
mov ecx, dword [esi + 0x34]
mov dword [ebx + 0x29c], ecx
mov ecx, dword [esi + 0x38]
mov dword [ebx + 0x2a0], ecx
mov ecx, dword [esi + 0x3c]
mov esi, dword [ebp - 0x140]
mov dword [ebx + 0x2a4], ecx
mov ecx, dword [ebx + 0x538]
mov dword [ebx + 0x2a8], ecx
mov ecx, dword [esi + 4]
mov dword [ebx + 0x2ac], ecx
mov ecx, dword [esi + 8]
mov dword [ebx + 0x2b0], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0x2b4], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0x2b8], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x2bc], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebx + 0x2c0], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 0x2c4], ecx
mov ecx, dword [esi + 0x20]
mov dword [ebx + 0x2c8], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebx + 0x2cc], ecx
mov ecx, dword [esi + 0x28]
mov dword [ebx + 0x2d0], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x2d4], ecx
mov ecx, dword [esi + 0x30]
mov dword [ebx + 0x2d8], ecx
mov ecx, dword [esi + 0x34]
mov dword [ebx + 0x2dc], ecx
mov ecx, dword [esi + 0x38]
mov dword [ebx + 0x2e0], ecx
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x2e4], ecx
jmp 0x516806
lea edi, [ebx + 0x494]
movzx eax, byte [ebp - 0x128]
and edi, 0xfffffffc
lea esi, [ebp - 0x108]
movdqa xmm1, xmmword [ebp - 0x118]
movups xmmword [ebx + 0x480], xmm1
mov byte [ebx + 0x470], al
mov eax, dword [ebp - 0x13c]
mov dword [ebx + 0x474], eax
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x478], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebx + 0x47c], eax
mov eax, dword [ebp - 0x108]
mov dword [ebx + 0x490], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x138]
mov dword [ecx + 0x5c], eax
mov dword [ebp - 0x138], ecx
sub ecx, edi
sub esi, ecx
add ecx, 0x60
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x144]
mov esi, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xa4]
mov dword [ebx + 0x4f8], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x4f0], esi
mov dword [ebx + 0x4f4], edi
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x98]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x94]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x90]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x140]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x88]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x84]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x80]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 0x7c]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x78]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0x74]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x70]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x6c]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0x68]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0x64]
mov dword [edx + 0x3c], eax
mov eax, dword [ebp - 0x60]
mov dword [ebx + 0x538], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x58]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x138]
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x44]
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x40]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x3c]
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x34]
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x30]
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x34], eax
mov eax, dword [ebp - 0x28]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x3c], eax
mov edx, dword [ebx + 0x47c]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [ebp - 0x13c], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x138], ebx
lea edi, [esi + edx]
mov ebx, edx
mov esi, 3
mov eax, dword [ebp - 0x134]
mov dword [esp], edi
add edi, ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
sub esi, 1
jne 0x5169bc
mov ebx, dword [ebp - 0x138]
cmp byte [ebx + 0x470], 0
mov esi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
jne 0x516aa5
mov eax, 0xffffffff
xor edx, edx
div esi
imul eax, ecx
mov dword [ebx + 0x317], eax
add ecx, 1
cmp byte [ebx + 0x470], 0
mov eax, dword [ebx + 0x47c]
mov edi, dword [ebp - 0x134]
lea edi, [edi + eax + 0x27]
jne 0x516b10
mov eax, 0xffffffff
xor edx, edx
div esi
imul eax, ecx
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
cmp byte [ebx + 0x470], 0
mov edi, dword [ebp - 0x134]
mov esi, dword [ebx + 8]
lea ecx, [eax + 2]
mov eax, dword [ebx + 0x47c]
lea edi, [edi + eax*2 + 0x27]
jne 0x516ae3
mov eax, 0xffffffff
xor edx, edx
div esi
imul eax, ecx
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
lea edi, [eax + 3]
mov eax, dword [ebx + 0x47c]
lea ecx, [eax + eax*2 + 0x27]
add ecx, dword [ebp - 0x134]
cmp byte [ebx + 0x470], 0
je 0x516ad0
mov eax, 0xffffff
xor edx, edx
mov ebx, dword [ecx]
div esi
and ebx, 0xff000000
imul eax, edi
add eax, ebx
mov dword [ecx], eax
jmp 0x515f2e
mov eax, 0xffffff
xor edx, edx
div esi
mov edx, dword [ebx + 0x317]
and edx, 0xff000000
imul eax, ecx
add eax, edx
mov dword [ebx + 0x317], eax
jmp 0x516a04
mov eax, 0xffffffff
xor edx, edx
div esi
imul eax, edi
mov dword [ecx], eax
jmp 0x515f2e
mov eax, dword [edi]
xor edx, edx
and eax, 0xff000000
mov dword [ebp - 0x138], eax
mov eax, 0xffffff
div esi
imul eax, ecx
add eax, dword [ebp - 0x138]
mov dword [edi], eax
jmp 0x516a66
mov eax, dword [edi]
xor edx, edx
and eax, 0xff000000
mov dword [ebp - 0x138], eax
mov eax, 0xffffff
div esi
imul eax, ecx
add eax, dword [ebp - 0x138]
mov dword [edi], eax
jmp 0x516a32
mov dword [ebp - 0x13c], 0x17a
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x17b
jmp 0x5158ea
mov dword [ebp - 0x150], 0x178
jmp 0x51616e
mov dword [ebp - 0x134], 0x60
jmp 0x515ccd
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x150], 0x60
lea edi, [ebx + 0x494]
mov dword [ebp - 0x148], eax
jmp 0x516551
mov dword [ebp - 0x150], 0x5f
lea edi, [ebx + 0x494]
jmp 0x516551
mov dword [ebp - 0x13c], 0x180
jmp 0x5158ea
mov dword [ebp - 0x150], 0x17f
jmp 0x51616e
lea eax, [ebx + 0x2f0]
mov dword [ebp - 0x150], 0x180
mov dword [ebp - 0x148], eax
jmp 0x51616e
mov dword [ebp - 0x13c], 0x17f
jmp 0x5158ea
mov dword [ebp - 0x150], 0x17d
jmp 0x51616e
mov dword [ebp - 0x150], 0x17e
jmp 0x51616e
mov dword [ebp - 0x134], 0x5e
jmp 0x515ccd
mov dword [ebp - 0x134], 0x5f
jmp 0x515ccd
mov dword [ebp - 0x150], 0x179
jmp 0x51616e
mov dword [ebp - 0x150], 0x17a
jmp 0x51616e
mov dword [ebp - 0x150], 0x17b
jmp 0x51616e
mov dword [ebp - 0x150], 0x17c
jmp 0x51616e
mov dword [ebp - 0x13c], 0x17c
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x17d
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x17e
jmp 0x5158ea
mov dword [ebp - 0x150], 0x5e
lea edi, [ebx + 0x494]
jmp 0x516551
mov dword [ebp - 0x150], 0x5c
jmp 0x516551
mov dword [ebp - 0x150], 0x5d
lea edi, [ebx + 0x494]
jmp 0x516551
mov dword [ebp - 0x150], 0x58
jmp 0x516551
mov dword [ebp - 0x150], 0x59
jmp 0x516551
mov dword [ebp - 0x150], 0x5a
jmp 0x516551
mov dword [ebp - 0x150], 0x5b
jmp 0x516551
mov dword [ebp - 0x134], 0x5a
jmp 0x515ccd
mov dword [ebp - 0x134], 0x5b
jmp 0x515ccd
mov dword [ebp - 0x134], 0x5c
jmp 0x515ccd
mov dword [ebp - 0x134], 0x5d
jmp 0x515ccd
mov dword [ebp - 0x134], 0x56
jmp 0x515ccd
mov dword [ebp - 0x134], 0x57
jmp 0x515ccd
mov dword [ebp - 0x134], 0x58
jmp 0x515ccd
mov dword [ebp - 0x134], 0x59
jmp 0x515ccd
mov dword [ebp - 0x150], 0x173
jmp 0x51616e
mov dword [ebp - 0x150], 0x174
jmp 0x51616e
mov dword [ebp - 0x150], 0x52
jmp 0x516551
mov dword [ebp - 0x150], 0x53
jmp 0x516551
mov dword [ebp - 0x150], 0x177
jmp 0x51616e
mov dword [ebp - 0x13c], 0x172
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x179
jmp 0x5158ea
mov dword [ebp - 0x150], 0x172
jmp 0x51616e
mov dword [ebp - 0x134], 0x52
jmp 0x515ccd
mov dword [ebp - 0x134], 0x53
jmp 0x515ccd
mov dword [ebp - 0x134], 0x54
jmp 0x515ccd
mov dword [ebp - 0x134], 0x55
jmp 0x515ccd
mov dword [ebp - 0x150], 0x54
jmp 0x516551
mov dword [ebp - 0x150], 0x55
jmp 0x516551
mov dword [ebp - 0x150], 0x56
jmp 0x516551
mov dword [ebp - 0x150], 0x57
jmp 0x516551
mov dword [ebp - 0x13c], 0x173
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x174
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x175
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x176
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x177
jmp 0x5158ea
mov dword [ebp - 0x13c], 0x178
jmp 0x5158ea
mov dword [ebp - 0x150], 0x175
jmp 0x51616e
mov dword [ebp - 0x150], 0x176
jmp 0x51616e