Function at 0x511b5b
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 + 0x3a0]
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 0x51250e
lea esi, [ebx + 0x280]
mov edi, dword [ebp - 0x124]
lea ecx, [ebx + 0x468]
mov eax, dword [ebx + 0x3a4]
mov dword [ebp - 0x134], esi
lea esi, [ebx + 0x3c0]
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 + 0x428]
mov dword [ebp - 0x144], esi
je 0x512525
mov edx, dword [ebp - 0x13c]
test edx, edx
js 0x512de0
cmp eax, 0xffffffff
jne 0x512de0
lea eax, [ebp - 0x60]
lea esi, [ebx + 0x238]
mov dword [esp + 8], 0x40
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x512de0
lea eax, [ebx + 0x50]
lea edi, [ebx + 0x280]
mov dword [ebp - 0x138], eax
mov ecx, eax
neg eax
and eax, 0xf
mov dword [ebp - 0x154], edi
mov edi, eax
je 0x513128
movzx eax, byte [ebx + 0x50]
cmp edi, 1
mov byte [ebx + 0x280], al
lea eax, [ebx + 0x281]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x51]
mov dword [ebp - 0x138], eax
je 0x513161
movzx eax, byte [ebx + 0x51]
cmp edi, 2
mov byte [ebx + 0x281], al
lea eax, [ebx + 0x282]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x52]
mov dword [ebp - 0x138], eax
je 0x513206
movzx eax, byte [ebx + 0x52]
cmp edi, 3
mov byte [ebx + 0x282], al
lea eax, [ebx + 0x283]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x53]
mov dword [ebp - 0x138], eax
je 0x5131f7
movzx eax, byte [ebx + 0x53]
cmp edi, 4
mov byte [ebx + 0x283], al
lea eax, [ebx + 0x284]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x54]
mov dword [ebp - 0x138], eax
je 0x5131e8
movzx eax, byte [ebx + 0x54]
cmp edi, 5
mov byte [ebx + 0x284], al
lea eax, [ebx + 0x285]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x55]
mov dword [ebp - 0x138], eax
je 0x5130c5
movzx eax, byte [ebx + 0x55]
cmp edi, 6
mov byte [ebx + 0x285], al
lea eax, [ebx + 0x286]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x56]
mov dword [ebp - 0x138], eax
je 0x5130b6
movzx eax, byte [ebx + 0x56]
cmp edi, 7
mov byte [ebx + 0x286], al
lea eax, [ebx + 0x287]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x57]
mov dword [ebp - 0x138], eax
je 0x51335c
movzx eax, byte [ebx + 0x57]
cmp edi, 8
mov byte [ebx + 0x287], al
lea eax, [ebx + 0x288]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x58]
mov dword [ebp - 0x138], eax
je 0x51343d
movzx eax, byte [ebx + 0x58]
cmp edi, 9
mov byte [ebx + 0x288], al
lea eax, [ebx + 0x289]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x59]
mov dword [ebp - 0x138], eax
je 0x51342e
movzx eax, byte [ebx + 0x59]
cmp edi, 0xa
mov byte [ebx + 0x289], al
lea eax, [ebx + 0x28a]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x5a]
mov dword [ebp - 0x138], eax
je 0x51341f
movzx eax, byte [ebx + 0x5a]
cmp edi, 0xb
mov byte [ebx + 0x28a], al
lea eax, [ebx + 0x28b]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x5b]
mov dword [ebp - 0x138], eax
je 0x513410
movzx eax, byte [ebx + 0x5b]
cmp edi, 0xc
mov byte [ebx + 0x28b], al
lea eax, [ebx + 0x28c]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x5c]
mov dword [ebp - 0x138], eax
je 0x513401
movzx eax, byte [ebx + 0x5c]
cmp edi, 0xd
mov byte [ebx + 0x28c], al
lea eax, [ebx + 0x28d]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x5d]
mov dword [ebp - 0x138], eax
je 0x5133f2
movzx eax, byte [ebx + 0x5d]
cmp edi, 0xe
mov byte [ebx + 0x28d], al
lea eax, [ebx + 0x28e]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x5e]
mov dword [ebp - 0x138], eax
je 0x51334d
movzx eax, byte [ebx + 0x5e]
mov dword [ebp - 0x13c], 0x111
mov byte [ebx + 0x28e], al
lea eax, [ebx + 0x28f]
mov dword [ebp - 0x134], eax
lea eax, [ebx + 0x5f]
mov dword [ebp - 0x138], eax
mov eax, 0x120
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 0x511ef0
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 0x511ff3
mov edi, edx
movzx edx, byte [eax]
cmp edi, 1
mov byte [ecx], dl
je 0x511ff3
movzx edx, byte [eax + 1]
cmp edi, 2
mov byte [ecx + 1], dl
je 0x511ff3
movzx edx, byte [eax + 2]
cmp edi, 3
mov byte [ecx + 2], dl
je 0x511ff3
movzx edx, byte [eax + 3]
cmp edi, 4
mov byte [ecx + 3], dl
je 0x511ff3
movzx edx, byte [eax + 4]
cmp edi, 5
mov byte [ecx + 4], dl
je 0x511ff3
movzx edx, byte [eax + 5]
cmp edi, 6
mov byte [ecx + 5], dl
je 0x511ff3
movzx edx, byte [eax + 6]
cmp edi, 7
mov byte [ecx + 6], dl
je 0x511ff3
movzx edx, byte [eax + 7]
cmp edi, 8
mov byte [ecx + 7], dl
je 0x511ff3
movzx edx, byte [eax + 8]
cmp edi, 9
mov byte [ecx + 8], dl
je 0x511ff3
movzx edx, byte [eax + 9]
cmp edi, 0xa
mov byte [ecx + 9], dl
je 0x511ff3
movzx edx, byte [eax + 0xa]
cmp edi, 0xb
mov byte [ecx + 0xa], dl
je 0x511ff3
movzx edx, byte [eax + 0xb]
cmp edi, 0xc
mov byte [ecx + 0xb], dl
je 0x511ff3
movzx edx, byte [eax + 0xc]
cmp edi, 0xd
mov byte [ecx + 0xc], dl
je 0x511ff3
movzx edx, byte [eax + 0xd]
cmp edi, 0xe
mov byte [ecx + 0xd], dl
je 0x511ff3
movzx eax, byte [eax + 0xe]
mov byte [ecx + 0xe], al
movzx eax, byte [ebx + 0x170]
lea edi, [ebx + 0x190]
movdqu xmm7, xmmword [ebx + 0x180]
movups xmmword [ebx + 0x3b0], xmm7
mov byte [ebx + 0x3a0], al
mov eax, dword [ebx + 0x174]
mov dword [ebx + 0x3a4], eax
mov eax, dword [ebx + 0x178]
mov dword [ebx + 0x3a8], eax
mov eax, dword [ebx + 0x17c]
mov dword [ebx + 0x3ac], eax
lea eax, [ebx + 0x170]
mov dword [ebp - 0x134], eax
mov eax, edi
neg eax
and eax, 0xf
mov ecx, eax
je 0x5130e3
movzx eax, byte [ebx + 0x190]
cmp ecx, 1
lea edi, [ebx + 0x191]
mov byte [ebx + 0x3c0], al
lea eax, [ebx + 0x3c1]
mov dword [ebp - 0x148], eax
je 0x51319d
movzx eax, byte [ebx + 0x191]
cmp ecx, 2
lea edi, [ebx + 0x192]
mov byte [ebx + 0x3c1], al
lea eax, [ebx + 0x3c2]
mov dword [ebp - 0x148], eax
je 0x51318e
movzx eax, byte [ebx + 0x192]
cmp ecx, 3
lea edi, [ebx + 0x193]
mov byte [ebx + 0x3c2], al
lea eax, [ebx + 0x3c3]
mov dword [ebp - 0x148], eax
je 0x5132b7
movzx eax, byte [ebx + 0x193]
cmp ecx, 4
lea edi, [ebx + 0x194]
mov byte [ebx + 0x3c3], al
lea eax, [ebx + 0x3c4]
mov dword [ebp - 0x148], eax
je 0x5132a8
movzx eax, byte [ebx + 0x194]
cmp ecx, 5
lea edi, [ebx + 0x195]
mov byte [ebx + 0x3c4], al
lea eax, [ebx + 0x3c5]
mov dword [ebp - 0x148], eax
je 0x513299
movzx eax, byte [ebx + 0x195]
cmp ecx, 6
lea edi, [ebx + 0x196]
mov byte [ebx + 0x3c5], al
lea eax, [ebx + 0x3c6]
mov dword [ebp - 0x148], eax
je 0x51328a
movzx eax, byte [ebx + 0x196]
cmp ecx, 7
lea edi, [ebx + 0x197]
mov byte [ebx + 0x3c6], al
lea eax, [ebx + 0x3c7]
mov dword [ebp - 0x148], eax
je 0x5132f3
movzx eax, byte [ebx + 0x197]
cmp ecx, 8
lea edi, [ebx + 0x198]
mov byte [ebx + 0x3c7], al
lea eax, [ebx + 0x3c8]
mov dword [ebp - 0x148], eax
je 0x5132e4
movzx eax, byte [ebx + 0x198]
cmp ecx, 9
lea edi, [ebx + 0x199]
mov byte [ebx + 0x3c8], al
lea eax, [ebx + 0x3c9]
mov dword [ebp - 0x148], eax
je 0x5132d5
movzx eax, byte [ebx + 0x199]
cmp ecx, 0xa
lea edi, [ebx + 0x19a]
mov byte [ebx + 0x3c9], al
lea eax, [ebx + 0x3ca]
mov dword [ebp - 0x148], eax
je 0x5132c6
movzx eax, byte [ebx + 0x19a]
cmp ecx, 0xb
lea edi, [ebx + 0x19b]
mov byte [ebx + 0x3ca], al
lea eax, [ebx + 0x3cb]
mov dword [ebp - 0x148], eax
je 0x5133a7
movzx eax, byte [ebx + 0x19b]
cmp ecx, 0xc
lea edi, [ebx + 0x19c]
mov byte [ebx + 0x3cb], al
lea eax, [ebx + 0x3cc]
mov dword [ebp - 0x148], eax
je 0x513398
movzx eax, byte [ebx + 0x19c]
cmp ecx, 0xd
lea edi, [ebx + 0x19d]
mov byte [ebx + 0x3cc], al
lea eax, [ebx + 0x3cd]
mov dword [ebp - 0x148], eax
je 0x513389
movzx eax, byte [ebx + 0x19d]
cmp ecx, 0xe
lea edi, [ebx + 0x19e]
mov byte [ebx + 0x3cd], al
lea eax, [ebx + 0x3ce]
mov dword [ebp - 0x148], eax
je 0x51337a
movzx eax, byte [ebx + 0x19e]
lea edi, [ebx + 0x19f]
mov dword [ebp - 0x134], 0x51
mov byte [ebx + 0x3ce], al
lea eax, [ebx + 0x3cf]
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 + 0x170]
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 0x512309
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 0x5123f1
mov eax, edx
movzx edx, byte [edi]
cmp eax, 1
mov byte [ecx], dl
je 0x5123f1
movzx edx, byte [edi + 1]
cmp eax, 2
mov byte [ecx + 1], dl
je 0x5123f1
movzx edx, byte [edi + 2]
cmp eax, 3
mov byte [ecx + 2], dl
je 0x5123f1
movzx edx, byte [edi + 3]
cmp eax, 4
mov byte [ecx + 3], dl
je 0x5123f1
movzx edx, byte [edi + 4]
cmp eax, 5
mov byte [ecx + 4], dl
je 0x5123f1
movzx edx, byte [edi + 5]
cmp eax, 6
mov byte [ecx + 5], dl
je 0x5123f1
movzx edx, byte [edi + 6]
cmp eax, 7
mov byte [ecx + 6], dl
je 0x5123f1
movzx edx, byte [edi + 7]
cmp eax, 8
mov byte [ecx + 7], dl
je 0x5123f1
movzx edx, byte [edi + 8]
cmp eax, 9
mov byte [ecx + 8], dl
je 0x5123f1
movzx edx, byte [edi + 9]
cmp eax, 0xa
mov byte [ecx + 9], dl
je 0x5123f1
movzx edx, byte [edi + 0xa]
cmp eax, 0xb
mov byte [ecx + 0xa], dl
je 0x5123f1
movzx edx, byte [edi + 0xb]
cmp eax, 0xc
mov byte [ecx + 0xb], dl
je 0x5123f1
movzx edx, byte [edi + 0xc]
cmp eax, 0xd
mov byte [ecx + 0xc], dl
je 0x5123f1
movzx edx, byte [edi + 0xd]
cmp eax, 0xe
mov byte [ecx + 0xd], dl
je 0x5123f1
movzx eax, byte [edi + 0xe]
mov byte [ecx + 0xe], al
mov ecx, dword [ebx + 0x1f8]
mov eax, dword [ebx + 0x1f0]
mov edx, dword [ebx + 0x1f4]
mov edi, dword [ebp - 0x144]
mov dword [ebx + 0x428], ecx
mov ecx, dword [ebx + 0x1fc]
mov dword [ebx + 0x420], eax
mov dword [ebx + 0x424], edx
mov dword [edi + 4], ecx
mov ecx, dword [ebx + 0x200]
mov dword [edi + 8], ecx
mov ecx, dword [ebx + 0x204]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebx + 0x208]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebx + 0x20c]
mov dword [edi + 0x14], ecx
mov ecx, dword [ebx + 0x210]
mov dword [edi + 0x18], ecx
mov ecx, dword [ebx + 0x214]
mov dword [edi + 0x1c], ecx
mov ecx, dword [ebx + 0x218]
mov dword [edi + 0x20], ecx
mov ecx, dword [ebx + 0x21c]
mov dword [edi + 0x24], ecx
mov ecx, dword [ebx + 0x220]
mov dword [edi + 0x28], ecx
mov ecx, dword [ebx + 0x224]
mov dword [edi + 0x2c], ecx
mov ecx, dword [ebx + 0x228]
mov dword [edi + 0x30], ecx
mov ecx, dword [ebx + 0x22c]
mov dword [edi + 0x34], ecx
mov ecx, dword [ebx + 0x230]
mov dword [edi + 0x38], ecx
mov eax, dword [ebx + 0x234]
mov dword [edi + 0x3c], eax
mov eax, dword [ebx + 0x238]
mov dword [ebx + 0x468], 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 + 0x3c4]
js 0x512de6
lea eax, [ebx + 0x280]
lea edi, [ebx + 0x50]
neg eax
mov dword [ebp - 0x154], edi
and eax, 0xf
mov ecx, eax
je 0x513146
movzx eax, byte [ebx + 0x280]
cmp ecx, 1
lea edi, [ebx + 0x51]
mov byte [ebx + 0x50], al
lea eax, [ebx + 0x281]
mov dword [ebp - 0x148], eax
je 0x513137
movzx eax, byte [ebx + 0x281]
cmp ecx, 2
lea edi, [ebx + 0x52]
mov byte [ebx + 0x51], al
lea eax, [ebx + 0x282]
mov dword [ebp - 0x148], eax
je 0x51317f
movzx eax, byte [ebx + 0x282]
cmp ecx, 3
lea edi, [ebx + 0x53]
mov byte [ebx + 0x52], al
lea eax, [ebx + 0x283]
mov dword [ebp - 0x148], eax
je 0x513170
movzx eax, byte [ebx + 0x283]
cmp ecx, 4
lea edi, [ebx + 0x54]
mov byte [ebx + 0x53], al
lea eax, [ebx + 0x284]
mov dword [ebp - 0x148], eax
je 0x5131d9
movzx eax, byte [ebx + 0x284]
cmp ecx, 5
lea edi, [ebx + 0x55]
mov byte [ebx + 0x54], al
lea eax, [ebx + 0x285]
mov dword [ebp - 0x148], eax
je 0x5131ca
movzx eax, byte [ebx + 0x285]
cmp ecx, 6
lea edi, [ebx + 0x56]
mov byte [ebx + 0x55], al
lea eax, [ebx + 0x286]
mov dword [ebp - 0x148], eax
je 0x5131bb
movzx eax, byte [ebx + 0x286]
cmp ecx, 7
lea edi, [ebx + 0x57]
mov byte [ebx + 0x56], al
lea eax, [ebx + 0x287]
mov dword [ebp - 0x148], eax
je 0x5131ac
movzx eax, byte [ebx + 0x287]
cmp ecx, 8
lea edi, [ebx + 0x58]
mov byte [ebx + 0x57], al
lea eax, [ebx + 0x288]
mov dword [ebp - 0x148], eax
je 0x5130d4
movzx eax, byte [ebx + 0x288]
cmp ecx, 9
lea edi, [ebx + 0x59]
mov byte [ebx + 0x58], al
lea eax, [ebx + 0x289]
mov dword [ebp - 0x148], eax
je 0x51333e
movzx eax, byte [ebx + 0x289]
cmp ecx, 0xa
lea edi, [ebx + 0x5a]
mov byte [ebx + 0x59], al
lea eax, [ebx + 0x28a]
mov dword [ebp - 0x148], eax
je 0x51345b
movzx eax, byte [ebx + 0x28a]
cmp ecx, 0xb
lea edi, [ebx + 0x5b]
mov byte [ebx + 0x5a], al
lea eax, [ebx + 0x28b]
mov dword [ebp - 0x148], eax
je 0x51344c
movzx eax, byte [ebx + 0x28b]
cmp ecx, 0xc
lea edi, [ebx + 0x5c]
mov byte [ebx + 0x5b], al
lea eax, [ebx + 0x28c]
mov dword [ebp - 0x148], eax
je 0x513311
movzx eax, byte [ebx + 0x28c]
cmp ecx, 0xd
lea edi, [ebx + 0x5d]
mov byte [ebx + 0x5c], al
lea eax, [ebx + 0x28d]
mov dword [ebp - 0x148], eax
je 0x513302
movzx eax, byte [ebx + 0x28d]
cmp ecx, 0xe
lea edi, [ebx + 0x5e]
mov byte [ebx + 0x5d], al
lea eax, [ebx + 0x28e]
mov dword [ebp - 0x148], eax
je 0x51336b
movzx eax, byte [ebx + 0x28e]
lea edi, [ebx + 0x5f]
mov dword [ebp - 0x150], 0x111
mov byte [ebx + 0x5e], al
lea eax, [ebx + 0x28f]
mov dword [ebp - 0x148], eax
mov eax, 0x120
sub eax, ecx
mov edx, eax
mov dword [ebp - 0x158], eax
lea eax, [ebx + 0x280]
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 ecx, edx
jb 0x512773
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 0x512873
movzx edx, byte [ecx]
cmp esi, 1
mov byte [eax], dl
je 0x512873
movzx edx, byte [ecx + 1]
cmp esi, 2
mov byte [eax + 1], dl
je 0x512873
movzx edx, byte [ecx + 2]
cmp esi, 3
mov byte [eax + 2], dl
je 0x512873
movzx edx, byte [ecx + 3]
cmp esi, 4
mov byte [eax + 3], dl
je 0x512873
movzx edx, byte [ecx + 4]
cmp esi, 5
mov byte [eax + 4], dl
je 0x512873
movzx edx, byte [ecx + 5]
cmp esi, 6
mov byte [eax + 5], dl
je 0x512873
movzx edx, byte [ecx + 6]
cmp esi, 7
mov byte [eax + 6], dl
je 0x512873
movzx edx, byte [ecx + 7]
cmp esi, 8
mov byte [eax + 7], dl
je 0x512873
movzx edx, byte [ecx + 8]
cmp esi, 9
mov byte [eax + 8], dl
je 0x512873
movzx edx, byte [ecx + 9]
cmp esi, 0xa
mov byte [eax + 9], dl
je 0x512873
movzx edx, byte [ecx + 0xa]
cmp esi, 0xb
mov byte [eax + 0xa], dl
je 0x512873
movzx edx, byte [ecx + 0xb]
cmp esi, 0xc
mov byte [eax + 0xb], dl
je 0x512873
movzx edx, byte [ecx + 0xc]
cmp esi, 0xd
mov byte [eax + 0xc], dl
je 0x512873
movzx edx, byte [ecx + 0xd]
cmp esi, 0xe
mov byte [eax + 0xd], dl
je 0x512873
movzx ecx, byte [ecx + 0xe]
mov byte [eax + 0xe], cl
movzx eax, byte [ebx + 0x3a0]
lea esi, [ebx + 0x190]
movdqu xmm4, xmmword [ebx + 0x3b0]
movups xmmword [ebx + 0x180], xmm4
mov byte [ebx + 0x170], al
mov eax, dword [ebx + 0x3a4]
mov dword [ebx + 0x174], eax
mov eax, dword [ebx + 0x3a8]
mov dword [ebx + 0x178], eax
mov eax, dword [ebx + 0x3ac]
mov dword [ebx + 0x17c], eax
lea eax, [ebx + 0x170]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x138]
neg eax
and eax, 0xf
mov ecx, eax
je 0x5130f2
movzx eax, byte [ebx + 0x3c0]
cmp ecx, 1
lea esi, [ebx + 0x191]
mov byte [ebx + 0x190], al
lea eax, [ebx + 0x3c1]
mov dword [ebp - 0x148], eax
je 0x513113
movzx eax, byte [ebx + 0x3c1]
cmp ecx, 2
lea esi, [ebx + 0x192]
mov byte [ebx + 0x191], al
lea eax, [ebx + 0x3c2]
mov dword [ebp - 0x148], eax
je 0x513215
movzx eax, byte [ebx + 0x3c2]
cmp ecx, 3
lea esi, [ebx + 0x193]
mov byte [ebx + 0x192], al
lea eax, [ebx + 0x3c3]
mov dword [ebp - 0x148], eax
je 0x513239
movzx eax, byte [ebx + 0x3c3]
lea edi, [ebx + 0x3c4]
cmp ecx, 4
lea esi, [ebx + 0x194]
mov dword [ebp - 0x148], edi
mov byte [ebx + 0x193], al
je 0x51322a
movzx eax, byte [ebx + 0x3c4]
cmp ecx, 5
lea esi, [ebx + 0x195]
mov byte [ebx + 0x194], al
lea eax, [ebx + 0x3c5]
mov dword [ebp - 0x148], eax
je 0x51327b
movzx eax, byte [ebx + 0x3c5]
cmp ecx, 6
lea esi, [ebx + 0x196]
mov byte [ebx + 0x195], al
lea eax, [ebx + 0x3c6]
mov dword [ebp - 0x148], eax
je 0x51326c
movzx eax, byte [ebx + 0x3c6]
cmp ecx, 7
lea esi, [ebx + 0x197]
mov byte [ebx + 0x196], al
lea eax, [ebx + 0x3c7]
mov dword [ebp - 0x148], eax
je 0x51325d
movzx eax, byte [ebx + 0x3c7]
cmp ecx, 8
lea esi, [ebx + 0x198]
mov byte [ebx + 0x197], al
lea eax, [ebx + 0x3c8]
mov dword [ebp - 0x148], eax
je 0x51324e
movzx eax, byte [ebx + 0x3c8]
cmp ecx, 9
lea esi, [ebx + 0x199]
mov byte [ebx + 0x198], al
lea eax, [ebx + 0x3c9]
mov dword [ebp - 0x148], eax
je 0x5133e3
movzx eax, byte [ebx + 0x3c9]
cmp ecx, 0xa
lea esi, [ebx + 0x19a]
mov byte [ebx + 0x199], al
lea eax, [ebx + 0x3ca]
mov dword [ebp - 0x148], eax
je 0x5133d4
movzx eax, byte [ebx + 0x3ca]
cmp ecx, 0xb
lea esi, [ebx + 0x19b]
mov byte [ebx + 0x19a], al
lea eax, [ebx + 0x3cb]
mov dword [ebp - 0x148], eax
je 0x5133c5
movzx eax, byte [ebx + 0x3cb]
cmp ecx, 0xc
lea esi, [ebx + 0x19c]
mov byte [ebx + 0x19b], al
lea eax, [ebx + 0x3cc]
mov dword [ebp - 0x148], eax
je 0x5133b6
movzx eax, byte [ebx + 0x3cc]
cmp ecx, 0xd
lea esi, [ebx + 0x19d]
mov byte [ebx + 0x19c], al
lea eax, [ebx + 0x3cd]
mov dword [ebp - 0x148], eax
je 0x51332f
movzx eax, byte [ebx + 0x3cd]
cmp ecx, 0xe
lea esi, [ebx + 0x19e]
mov byte [ebx + 0x19d], al
lea eax, [ebx + 0x3ce]
mov dword [ebp - 0x148], eax
je 0x513320
movzx eax, byte [ebx + 0x3ce]
lea esi, [ebx + 0x19f]
mov dword [ebp - 0x150], 0x51
mov byte [ebx + 0x19e], al
lea eax, [ebx + 0x3cf]
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 0x512b8d
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 0x512c89
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x14c]
cmp esi, 1
mov byte [eax], dl
je 0x512c89
movzx edx, byte [ecx + 1]
cmp esi, 2
mov byte [eax + 1], dl
je 0x512c89
movzx edx, byte [ecx + 2]
cmp esi, 3
mov byte [eax + 2], dl
je 0x512c89
movzx edx, byte [ecx + 3]
cmp esi, 4
mov byte [eax + 3], dl
je 0x512c89
movzx edx, byte [ecx + 4]
cmp esi, 5
mov byte [eax + 4], dl
je 0x512c89
movzx edx, byte [ecx + 5]
cmp esi, 6
mov byte [eax + 5], dl
je 0x512c89
movzx edx, byte [ecx + 6]
cmp esi, 7
mov byte [eax + 6], dl
je 0x512c89
movzx edx, byte [ecx + 7]
cmp esi, 8
mov byte [eax + 7], dl
je 0x512c89
movzx edx, byte [ecx + 8]
cmp esi, 9
mov byte [eax + 8], dl
je 0x512c89
movzx edx, byte [ecx + 9]
cmp esi, 0xa
mov byte [eax + 9], dl
je 0x512c89
movzx edx, byte [ecx + 0xa]
cmp esi, 0xb
mov byte [eax + 0xa], dl
je 0x512c89
movzx edx, byte [ecx + 0xb]
cmp esi, 0xc
mov byte [eax + 0xb], dl
je 0x512c89
movzx edx, byte [ecx + 0xc]
cmp esi, 0xd
mov byte [eax + 0xc], dl
je 0x512c89
movzx edx, byte [ecx + 0xd]
cmp esi, 0xe
mov byte [eax + 0xd], dl
je 0x512c89
movzx ecx, byte [ecx + 0xe]
mov byte [eax + 0xe], cl
mov esi, dword [ebp - 0x144]
mov ecx, dword [ebx + 0x428]
mov eax, dword [ebx + 0x420]
mov edx, dword [ebx + 0x424]
mov dword [ebx + 0x1f8], ecx
mov dword [ebx + 0x1f0], eax
mov dword [ebx + 0x1f4], edx
mov ecx, dword [esi + 4]
mov dword [ebx + 0x1fc], ecx
mov ecx, dword [esi + 8]
mov dword [ebx + 0x200], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0x204], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0x208], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x20c], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebx + 0x210], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 0x214], ecx
mov ecx, dword [esi + 0x20]
mov dword [ebx + 0x218], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebx + 0x21c], ecx
mov ecx, dword [esi + 0x28]
mov dword [ebx + 0x220], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x224], ecx
mov ecx, dword [esi + 0x30]
mov dword [ebx + 0x228], ecx
mov ecx, dword [esi + 0x34]
mov dword [ebx + 0x22c], ecx
mov ecx, dword [esi + 0x38]
mov dword [ebx + 0x230], ecx
mov ecx, dword [esi + 0x3c]
mov esi, dword [ebp - 0x140]
mov dword [ebx + 0x234], ecx
mov ecx, dword [ebx + 0x468]
mov dword [ebx + 0x238], ecx
mov ecx, dword [esi + 4]
mov dword [ebx + 0x23c], ecx
mov ecx, dword [esi + 8]
mov dword [ebx + 0x240], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0x244], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0x248], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x24c], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebx + 0x250], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 0x254], ecx
mov ecx, dword [esi + 0x20]
mov dword [ebx + 0x258], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebx + 0x25c], ecx
mov ecx, dword [esi + 0x28]
mov dword [ebx + 0x260], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x264], ecx
mov ecx, dword [esi + 0x30]
mov dword [ebx + 0x268], ecx
mov ecx, dword [esi + 0x34]
mov dword [ebx + 0x26c], ecx
mov ecx, dword [esi + 0x38]
mov dword [ebx + 0x270], ecx
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x274], ecx
jmp 0x512de6
lea edi, [ebx + 0x3c4]
movzx eax, byte [ebp - 0x128]
and edi, 0xfffffffc
lea esi, [ebp - 0x108]
movdqa xmm1, xmmword [ebp - 0x118]
movups xmmword [ebx + 0x3b0], xmm1
mov byte [ebx + 0x3a0], al
mov eax, dword [ebp - 0x13c]
mov dword [ebx + 0x3a4], eax
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x3a8], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebx + 0x3ac], eax
mov eax, dword [ebp - 0x108]
mov dword [ebx + 0x3c0], 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 + 0x428], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x420], esi
mov dword [ebx + 0x424], 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 + 0x468], 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 ecx, dword [ebp - 0x138]
mov esi, dword [ebp - 0x134]
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 edi, dword [ebx + 0x3ac]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], edi
call sub.msvcrt.dll_memcpy
mov eax, esi
lea esi, [esi + edi]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [ebp - 0x134], eax
mov dword [esp], esi
add esi, edi
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x134]
mov dword [esp], esi
mov dword [esp + 8], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
cmp byte [ebx + 0x3a0], 0
mov esi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
jne 0x513050
mov eax, 0xffffffff
xor edx, edx
div esi
imul eax, ecx
mov dword [ebx + 0x2a7], eax
add ecx, 1
cmp byte [ebx + 0x3a0], 0
mov eax, dword [ebx + 0x3ac]
mov edi, dword [ebp - 0x134]
lea edi, [edi + eax + 0x27]
jne 0x513090
mov eax, 0xffffffff
xor edx, edx
div esi
imul eax, ecx
mov dword [edi], eax
mov eax, dword [ebx + 8]
cmp byte [ebx + 0x3a0], 0
mov edi, dword [ebp - 0x134]
mov edx, eax
mov eax, dword [ebx + 0xc]
lea ecx, [eax + 2]
mov eax, dword [ebx + 0x3ac]
lea esi, [edi + eax*2 + 0x27]
je 0x513075
mov ebx, edx
mov eax, 0xffffff
xor edx, edx
div ebx
mov edi, dword [esi]
and edi, 0xff000000
imul eax, ecx
add eax, edi
mov dword [esi], eax
jmp 0x51250e
mov eax, 0xffffff
xor edx, edx
div esi
mov edx, dword [ebx + 0x2a7]
and edx, 0xff000000
imul eax, ecx
add eax, edx
mov dword [ebx + 0x2a7], eax
jmp 0x512fd8
mov edi, edx
mov eax, 0xffffffff
xor edx, edx
div edi
imul eax, ecx
mov dword [esi], eax
jmp 0x51250e
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 0x513006
mov dword [ebp - 0x13c], 0x11a
jmp 0x511eca
mov dword [ebp - 0x13c], 0x11b
jmp 0x511eca
mov dword [ebp - 0x150], 0x118
jmp 0x51274e
mov dword [ebp - 0x134], 0x60
jmp 0x5122ad
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x150], 0x60
lea edi, [ebx + 0x3c4]
mov dword [ebp - 0x148], eax
jmp 0x512b31
mov dword [ebp - 0x150], 0x5f
lea edi, [ebx + 0x3c4]
jmp 0x512b31
mov dword [ebp - 0x13c], 0x120
jmp 0x511eca
mov dword [ebp - 0x150], 0x11f
jmp 0x51274e
lea eax, [ebx + 0x280]
mov dword [ebp - 0x150], 0x120
mov dword [ebp - 0x148], eax
jmp 0x51274e
mov dword [ebp - 0x13c], 0x11f
jmp 0x511eca
mov dword [ebp - 0x150], 0x11d
jmp 0x51274e
mov dword [ebp - 0x150], 0x11e
jmp 0x51274e
mov dword [ebp - 0x134], 0x5e
jmp 0x5122ad
mov dword [ebp - 0x134], 0x5f
jmp 0x5122ad
mov dword [ebp - 0x150], 0x119
jmp 0x51274e
mov dword [ebp - 0x150], 0x11a
jmp 0x51274e
mov dword [ebp - 0x150], 0x11b
jmp 0x51274e
mov dword [ebp - 0x150], 0x11c
jmp 0x51274e
mov dword [ebp - 0x13c], 0x11c
jmp 0x511eca
mov dword [ebp - 0x13c], 0x11d
jmp 0x511eca
mov dword [ebp - 0x13c], 0x11e
jmp 0x511eca
mov dword [ebp - 0x150], 0x5e
lea edi, [ebx + 0x3c4]
jmp 0x512b31
mov dword [ebp - 0x150], 0x5c
jmp 0x512b31
mov dword [ebp - 0x150], 0x5d
lea edi, [ebx + 0x3c4]
jmp 0x512b31
mov dword [ebp - 0x150], 0x58
jmp 0x512b31
mov dword [ebp - 0x150], 0x59
jmp 0x512b31
mov dword [ebp - 0x150], 0x5a
jmp 0x512b31
mov dword [ebp - 0x150], 0x5b
jmp 0x512b31
mov dword [ebp - 0x134], 0x5a
jmp 0x5122ad
mov dword [ebp - 0x134], 0x5b
jmp 0x5122ad
mov dword [ebp - 0x134], 0x5c
jmp 0x5122ad
mov dword [ebp - 0x134], 0x5d
jmp 0x5122ad
mov dword [ebp - 0x134], 0x56
jmp 0x5122ad
mov dword [ebp - 0x134], 0x57
jmp 0x5122ad
mov dword [ebp - 0x134], 0x58
jmp 0x5122ad
mov dword [ebp - 0x134], 0x59
jmp 0x5122ad
mov dword [ebp - 0x150], 0x113
jmp 0x51274e
mov dword [ebp - 0x150], 0x114
jmp 0x51274e
mov dword [ebp - 0x150], 0x52
jmp 0x512b31
mov dword [ebp - 0x150], 0x53
jmp 0x512b31
mov dword [ebp - 0x150], 0x117
jmp 0x51274e
mov dword [ebp - 0x13c], 0x112
jmp 0x511eca
mov dword [ebp - 0x13c], 0x119
jmp 0x511eca
mov dword [ebp - 0x150], 0x112
jmp 0x51274e
mov dword [ebp - 0x134], 0x52
jmp 0x5122ad
mov dword [ebp - 0x134], 0x53
jmp 0x5122ad
mov dword [ebp - 0x134], 0x54
jmp 0x5122ad
mov dword [ebp - 0x134], 0x55
jmp 0x5122ad
mov dword [ebp - 0x150], 0x54
jmp 0x512b31
mov dword [ebp - 0x150], 0x55
jmp 0x512b31
mov dword [ebp - 0x150], 0x56
jmp 0x512b31
mov dword [ebp - 0x150], 0x57
jmp 0x512b31
mov dword [ebp - 0x13c], 0x113
jmp 0x511eca
mov dword [ebp - 0x13c], 0x114
jmp 0x511eca
mov dword [ebp - 0x13c], 0x115
jmp 0x511eca
mov dword [ebp - 0x13c], 0x116
jmp 0x511eca
mov dword [ebp - 0x13c], 0x117
jmp 0x511eca
mov dword [ebp - 0x13c], 0x118
jmp 0x511eca
mov dword [ebp - 0x150], 0x115
jmp 0x51274e
mov dword [ebp - 0x150], 0x116
jmp 0x51274e