Function at 0x521290
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x58
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + 0x150]
mov edx, dword [ecx + 0x10c]
push ebx
mov ebx, dword [ecx + 0xc0]
push ebp
mov ebp, dword [ecx + 0x104]
push esi
mov esi, dword [ecx + 0x110]
test esi, esi
push edi
mov edi, dword [ecx + 0xe0]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0xcc]
mov dword [esp + 0x40], ebx
mov ebx, dword [ecx + 0xc4]
mov dword [esp + 0x44], edx
mov edx, dword [ecx + 0xc8]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], ebx
jne 0x52130a
cmp edi, 2
jne 0x521300
test eax, eax
je 0x52130a
jmp 0x521312
cmp edi, 3
jl 0x521312
cmp eax, 1
jne 0x521312
mov dword [esp + 0x38], 0
mov esi, dword [esp + 0x40]
test esi, esi
jne 0x52134a
mov esi, dword [ecx + 0xf4]
mov edi, dword [ecx + 0xd4]
lea ebx, [esi - 1]
cmp edi, ebx
jl 0x52134a
cmp edi, esi
jl 0x521342
xor esi, esi
cmp ebp, 4
mov dword [esp + 0x44], esi
jne 0x52134a
mov dword [esp + 0x38], esi
jmp 0x52134a
mov dword [esp + 0x38], 0
mov esi, dword [ecx + 0xbc]
mov edi, dword [ecx + 0xf8]
add edi, esi
lea ebx, [edi + ebp*2]
add ebx, ebp
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x10]
mov ebp, edi
sub ebp, ebx
lea esp, [esp]
mov bl, byte [ebp]
mov byte [edi], bl
mov ebx, dword [esp + 0x48]
inc edi
inc ebp
cmp edi, ebx
jne 0x521370
mov edi, dword [ecx + 0x14c]
mov ebp, dword [ecx + 0x1a8]
add edi, esi
lea ebx, [ecx + 0x19c]
mov dword [esp + 0x14], edi
mov edi, dword [ebx + 4]
imul edi, edx
add edi, eax
imul edi, dword [ebx + 8]
mov dword [esp + 0x50], ebx
mov ebx, dword [ecx + 0x1d0]
imul ebx, edx
add ebx, eax
imul ebx, dword [ecx + 0x1d4]
add edi, ebp
add ebx, dword [ecx + 0x1d8]
mov ebp, dword [ecx + 0x200]
imul ebp, edx
add ebp, eax
imul ebp, dword [ecx + 0x204]
add ebp, dword [ecx + 0x208]
mov eax, dword [ecx + 0x230]
imul eax, edx
add eax, dword [esp + 0x4c]
imul eax, dword [ecx + 0x234]
add eax, dword [ecx + 0x238]
mov edx, dword [esp + 0x44]
test edx, edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x58], eax
je 0x521c64
mov edx, dword [ecx + 0x154]
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 0x158]
mov dword [esp + 0x1c], edx
mov edx, dword [ecx + 0x15c]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 0x160]
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 0x164]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0x168]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x38]
test edx, edx
je 0x521607
cmp dword [esp + 0x10], 3
jne 0x521530
jmp 0x521470
movzx eax, byte [esi + 2]
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x20]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
movzx ecx, byte [esi]
mov edx, dword [esp + 0x18]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x20]
shr eax, 0x10
mov byte [edi], al
movzx eax, byte [esi + 5]
mov eax, dword [edx + eax*4]
movzx ecx, byte [esi + 4]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
movzx ecx, byte [esi + 3]
mov edx, dword [esp + 0x18]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x20]
shr eax, 0x10
mov byte [edi + 1], al
movzx eax, byte [esi + 8]
mov eax, dword [edx + eax*4]
movzx ecx, byte [esi + 7]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
movzx ecx, byte [esi + 6]
mov edx, dword [esp + 0x18]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x20]
shr eax, 0x10
mov byte [edi + 2], al
movzx eax, byte [esi + 0xb]
mov eax, dword [edx + eax*4]
movzx ecx, byte [esi + 0xa]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
movzx ecx, byte [esi + 9]
mov edx, dword [esp + 0x18]
add eax, dword [edx + ecx*4]
add esi, 0xc
shr eax, 0x10
mov byte [edi + 3], al
mov eax, dword [esp + 0x14]
add edi, 4
cmp esi, eax
jb 0x521470
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
jmp 0x521ca3
movzx ecx, byte [esi]
movzx eax, byte [esi + 2]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x20]
sub ecx, dword [edx + eax*4]
movzx eax, byte [esi + 1]
mov edx, dword [esp + 0x1c]
sub ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x18]
shr ecx, 0x10
mov byte [edi], cl
movzx ecx, byte [esi + 4]
mov ecx, dword [edx + ecx*4]
movzx eax, byte [esi + 6]
mov edx, dword [esp + 0x20]
sub ecx, dword [edx + eax*4]
movzx eax, byte [esi + 5]
mov edx, dword [esp + 0x1c]
sub ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x18]
shr ecx, 0x10
mov byte [edi + 1], cl
movzx ecx, byte [esi + 8]
mov ecx, dword [edx + ecx*4]
movzx eax, byte [esi + 0xa]
mov edx, dword [esp + 0x20]
sub ecx, dword [edx + eax*4]
movzx eax, byte [esi + 9]
mov edx, dword [esp + 0x1c]
sub ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x18]
shr ecx, 0x10
mov byte [edi + 2], cl
movzx ecx, byte [esi + 0xc]
mov ecx, dword [edx + ecx*4]
movzx eax, byte [esi + 0xe]
mov edx, dword [esp + 0x20]
sub ecx, dword [edx + eax*4]
movzx eax, byte [esi + 0xd]
mov edx, dword [esp + 0x1c]
sub ecx, dword [edx + eax*4]
mov eax, dword [esp + 0x24]
shr ecx, 0x10
mov byte [edi + 3], cl
mov cl, byte [esi + 3]
mov byte [eax], cl
mov dl, byte [esi + 7]
mov byte [eax + 1], dl
mov cl, byte [esi + 0xb]
mov byte [eax + 2], cl
mov dl, byte [esi + 0xf]
mov ecx, dword [esp + 0x14]
mov byte [eax + 3], dl
add eax, 4
add esi, 0x10
add edi, 4
cmp esi, ecx
mov dword [esp + 0x24], eax
jb 0x521530
mov ecx, dword [esp + 0x6c]
jmp 0x521ca3
mov edx, dword [esp + 0x40]
cmp edx, 5
ja case.0x521614.1
jmp dword [edx*4 + 0x522948]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x521720
jmp 0x521630
movzx eax, byte [esi]
movzx ecx, byte [esi + 2]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x44], eax
movzx eax, byte [esi + 1]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x1c]
add ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
add ecx, dword [eax + edx*4]
mov edx, dword [esp + 0x20]
shr ecx, 0x10
mov byte [edi], cl
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 5]
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x1c]
add ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
add ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
shr ecx, 0x10
mov byte [edi + 1], cl
mov ecx, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x30]
add edx, ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
add eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [esp + 0x34]
add eax, dword [ecx + edx*4]
add edi, 2
mov edx, eax
shr edx, 0x18
shr eax, 8
add esi, 6
mov byte [ebx], dl
mov byte [ebp], al
mov eax, dword [esp + 0x14]
inc ebx
inc ebp
cmp esi, eax
jb 0x521630
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
lea ecx, [eax - 1]
cmp esi, ecx
jne 0x5228ca
cmp eax, 2
jl 0x5228ca
mov esi, 1
jmp 0x5228cc
movzx edx, byte [esi + 2]
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
shr eax, 0x10
mov byte [edi], al
mov eax, dword [esp + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
add eax, dword [edx + ecx*4]
add esi, 6
mov edx, eax
shr eax, 8
shr edx, 0x18
mov byte [ebx], dl
mov edx, dword [esp + 0x20]
mov byte [ebp], al
movzx eax, byte [esi - 1]
mov eax, dword [edx + eax*4]
movzx ecx, byte [esi - 2]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
movzx ecx, byte [esi - 3]
mov edx, dword [esp + 0x18]
add eax, dword [edx + ecx*4]
inc ebx
shr eax, 0x10
mov byte [edi + 1], al
mov eax, dword [esp + 0x14]
inc ebp
add edi, 2
cmp esi, eax
jb 0x521720
jmp case.default.0x521dda
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x5218b0
jmp 0x5217d5
mov eax, dword [esp + 0x24]
mov cl, byte [esi + 3]
mov byte [eax], cl
mov dl, byte [esi + 7]
mov byte [eax + 1], dl
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x18]
add eax, 2
mov dword [esp + 0x24], eax
movzx eax, byte [esi]
mov dword [esp + 0x30], eax
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
movzx ecx, byte [esi + 2]
sub eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x1c]
sub eax, dword [ecx + edx*4]
mov edx, dword [esp + 0x18]
shr eax, 0x10
mov byte [edi], al
movzx ecx, byte [esi + 5]
movzx eax, byte [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x44], ecx
movzx ecx, byte [esi + 6]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
sub edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
sub edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x3c]
shr edx, 0x10
mov byte [edi + 1], dl
mov edx, dword [esp + 0x40]
add edx, ecx
mov ecx, dword [esp + 0x48]
add ecx, eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x2c]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
add ecx, edx
mov edx, dword [esp + 0x34]
add eax, dword [edx + ecx*4]
add esi, 8
mov ecx, eax
shr ecx, 0x18
shr eax, 8
add edi, 2
mov byte [ebx], cl
mov byte [ebp], al
mov eax, dword [esp + 0x14]
inc ebx
inc ebp
cmp esi, eax
jb 0x5217d1
jmp case.default.0x521dda
mov eax, dword [esp + 0x24]
lea esp, [esp]
mov dl, byte [esi + 3]
mov byte [eax], dl
mov cl, byte [esi + 7]
mov byte [eax + 1], cl
movzx edx, byte [esi + 2]
movzx ecx, byte [esi + 1]
add eax, 2
mov dword [esp + 0x24], eax
movzx eax, byte [esi]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
sub eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x48]
sub eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x40]
shr eax, 0x10
mov byte [edi], al
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x28]
add eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x44]
add eax, dword [ecx + edx*4]
add esi, 8
mov ecx, eax
shr eax, 8
shr ecx, 0x18
mov byte [ebx], cl
mov byte [ebp], al
movzx edx, byte [esi - 3]
movzx eax, byte [esi - 4]
movzx ecx, byte [esi - 2]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x20]
sub eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
sub eax, dword [edx + ecx*4]
inc ebx
shr eax, 0x10
mov byte [edi + 1], al
mov eax, dword [esp + 0x14]
inc ebp
add edi, 2
cmp esi, eax
jb 0x5218a8
jmp case.default.0x521dda
movzx edx, byte [esi + 2]
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
shr eax, 0x10
mov byte [edi], al
mov eax, dword [esp + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
add eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
add eax, dword [edx + ecx*4]
add esi, 6
mov edx, eax
shr eax, 8
shr edx, 0x18
mov byte [ebx], dl
mov byte [ebp], al
movzx edx, byte [esi - 1]
movzx eax, byte [esi - 3]
movzx ecx, byte [esi - 2]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
add eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
shr eax, 0x10
mov byte [edi + 1], al
mov eax, dword [esp + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
add eax, dword [edx + ecx*4]
add edi, 2
mov edx, eax
shr edx, 0x18
shr eax, 8
mov byte [ebx + 1], dl
mov byte [ebp + 1], al
mov eax, dword [esp + 0x14]
add ebx, 2
add ebp, 2
cmp esi, eax
jb case.0x521614.2
jmp case.default.0x521dda
mov eax, dword [esp + 0x24]
lea ebx, [ebx]
movzx edx, byte [esi + 1]
movzx ecx, byte [esi]
mov dword [esp + 0x3c], edx
movzx edx, byte [esi + 2]
mov dword [esp + 0x40], edx
mov dl, byte [esi + 3]
mov byte [eax], dl
mov eax, dword [esp + 0x18]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x3c]
sub edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
sub edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x3c]
shr edx, 0x10
mov byte [edi], dl
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x28]
add eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
add eax, dword [ecx + edx*4]
add esi, 8
mov ecx, eax
shr eax, 8
shr ecx, 0x18
mov byte [ebx], cl
mov byte [ebp], al
movzx edx, byte [esi - 3]
movzx eax, byte [esi - 2]
movzx ecx, byte [esi - 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov dl, byte [esi - 1]
mov byte [eax + 1], dl
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x3c]
sub edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
sub edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x3c]
shr edx, 0x10
mov byte [edi + 1], dl
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x28]
add eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
add eax, dword [ecx + edx*4]
add edi, 2
mov ecx, eax
shr ecx, 0x18
shr eax, 8
mov byte [ebx + 1], cl
mov byte [ebp + 1], al
mov eax, dword [esp + 0x14]
add ebx, 2
add ebp, 2
cmp esi, eax
jb 0x521a56
jmp case.default.0x521dda
call fcn.0048b350
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x44]
dec edx
je 0x521bf0
dec edx
jne 0x521c59
jmp 0x521b80
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
sub eax, dword [edx + ecx*4]
movzx ecx, byte [esi + 2]
mov edx, dword [esp + 0x20]
sub eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x2c]
shr eax, 0x10
mov byte [esi], al
movzx eax, byte [esi + 1]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x28]
add eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x44]
add eax, dword [ecx + edx*4]
add esi, 4
mov ecx, eax
shr eax, 8
shr ecx, 0x18
mov byte [esi - 2], al
cmp esi, dword [esp + 0x48]
mov byte [esi - 3], cl
jb 0x521b80
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x24]
mov esi, dword [ecx + 0xbc]
jmp 0x521d57
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
add edx, dword [eax + ecx*4]
movzx eax, byte [esi + 2]
mov ecx, dword [esp + 0x20]
add edx, dword [ecx + eax*4]
movzx ecx, byte [esi + 1]
mov eax, dword [esp + 0x44]
shr edx, 0x10
mov byte [esi], dl
mov edx, dword [esp + 0x34]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x2c]
add eax, dword [edx + ecx*4]
movzx ecx, byte [esi + 2]
mov edx, dword [esp + 0x28]
add eax, dword [edx + ecx*4]
add esi, 3
mov ecx, eax
shr eax, 8
shr ecx, 0x18
mov byte [esi - 1], al
cmp esi, dword [esp + 0x48]
mov byte [esi - 2], cl
jb 0x521bf0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
mov esi, dword [ecx + 0xbc]
jmp 0x521d57
mov edx, dword [esp + 0x38]
test edx, edx
je 0x521cdf
mov edx, dword [esp + 0x10]
sub edx, 2
je 0x521cb4
dec edx
jne 0x521d57
lea esp, [esp]
mov dl, byte [esi]
mov byte [edi], dl
mov dl, byte [esi + 3]
mov byte [edi + 1], dl
mov dl, byte [esi + 6]
inc edi
inc edi
mov byte [edi], dl
mov dl, byte [esi + 9]
inc edi
mov byte [edi], dl
mov edx, dword [esp + 0x14]
add esi, 0xc
inc edi
cmp esi, edx
jb 0x521c80
add ebx, dword [ecx + 0x1d4]
add ebp, dword [ecx + 0x204]
jmp 0x521d57
mov dl, byte [esi]
mov byte [edi], dl
mov dl, byte [esi + 2]
mov byte [edi + 1], dl
mov dl, byte [esi + 4]
inc edi
inc edi
mov byte [edi], dl
mov dl, byte [esi + 6]
inc edi
mov byte [edi], dl
mov edx, dword [esp + 0x14]
add esi, 8
inc edi
cmp esi, edx
jb 0x521cb4
add ebx, dword [ecx + 0x1d4]
jmp 0x521d57
mov edx, dword [esp + 0x40]
test edx, edx
je 0x521d71
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x521d33
movzx edx, byte [esi + 2]
movzx ecx, byte [esi + 5]
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [ebp], cl
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 4]
lea edx, [edx + ecx + 1]
shr edx, 1
mov byte [ebx], dl
mov cl, byte [esi]
inc ebp
mov byte [edi], cl
mov dl, byte [esi + 3]
mov ecx, dword [esp + 0x14]
inc ebx
inc edi
mov byte [edi], dl
add esi, dword [esp + 0x30]
inc edi
cmp esi, ecx
jb 0x521cf3
mov ecx, dword [esp + 0x6c]
jmp 0x521d57
mov dl, byte [esi + 2]
mov byte [ebp], dl
mov dl, byte [esi + 1]
mov byte [ebx], dl
mov dl, byte [esi]
mov byte [edi], dl
mov dl, byte [esi + 3]
inc ebp
inc ebx
inc edi
mov byte [edi], dl
add esi, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
inc edi
cmp esi, edx
jb 0x521d33
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0x10]
jne 0x5216f4
cmp dword [esp + 0x38], 0
jne 0x5216f4
mov edx, dword [esp + 0x50]
mov edx, dword [edx]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0x1cc]
mov dword [esp + 0x28], edx
mov edx, dword [ecx + 0x1fc]
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 0x22c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x10]
lea edx, [edx + edx*2 + 1]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x521db5
mov dword [esp + 0x3c], 1
mov ecx, dword [ecx + 0xdc]
mov edx, dword [esp + 0x10]
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0x3c]
lea ecx, [edx + ecx*2 - 0xa]
cmp ecx, 0x1f
ja case.default.0x521dda
movzx ecx, byte [ecx + 0x522998]
jmp dword [ecx*4 + 0x522960]
mov ecx, dword [esp + 0x14]
mov dl, byte [esi]
mov byte [edi], dl
mov dl, byte [esi + 4]
mov byte [edi + 1], dl
mov dl, byte [esi + 8]
mov byte [edi + 2], dl
mov dl, byte [esi + 0xc]
mov byte [edi + 3], dl
mov dl, byte [esi + 1]
mov byte [ebx], dl
mov dl, byte [esi + 5]
mov byte [ebx + 1], dl
mov dl, byte [esi + 9]
mov byte [ebx + 2], dl
mov dl, byte [esi + 0xd]
mov byte [ebx + 3], dl
mov dl, byte [esi + 2]
mov byte [ebp], dl
mov dl, byte [esi + 6]
mov byte [ebp + 1], dl
mov dl, byte [esi + 0xa]
mov byte [ebp + 2], dl
mov dl, byte [esi + 0xe]
mov byte [ebp + 3], dl
mov dl, byte [esi + 3]
mov byte [eax], dl
mov dl, byte [esi + 7]
mov byte [eax + 1], dl
mov dl, byte [esi + 0xb]
mov byte [eax + 2], dl
mov dl, byte [esi + 0xf]
mov byte [eax + 3], dl
add esi, 0x10
add edi, 4
add ebx, 4
add ebp, 4
add eax, 4
cmp esi, ecx
jb 0x521de5
jmp case.default.0x521dda
mov eax, dword [esp + 0x14]
lea ecx, [ecx]
mov cl, byte [esi]
mov byte [edi], cl
mov dl, byte [esi + 3]
mov byte [edi + 1], dl
mov cl, byte [esi + 6]
mov byte [edi + 2], cl
mov dl, byte [esi + 9]
mov byte [edi + 3], dl
mov cl, byte [esi + 1]
mov byte [ebx], cl
mov dl, byte [esi + 4]
mov byte [ebx + 1], dl
mov cl, byte [esi + 7]
mov byte [ebx + 2], cl
mov dl, byte [esi + 0xa]
mov byte [ebx + 3], dl
mov cl, byte [esi + 2]
mov byte [ebp], cl
mov dl, byte [esi + 5]
mov byte [ebp + 1], dl
mov cl, byte [esi + 8]
mov byte [ebp + 2], cl
mov dl, byte [esi + 0xb]
mov byte [ebp + 3], dl
add esi, 0xc
add edi, 4
add ebx, 4
add ebp, 4
cmp esi, eax
jb 0x521e60
jmp case.default.0x521dda
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x14c]
push ecx
push esi
push edi
call sub.MSVCR71.dll_memmove
add esp, 0xc
jmp case.default.0x521dda
mov eax, dword [esp + 0x14]
mov dl, byte [esi]
mov byte [edi], dl
mov cl, byte [esi + 2]
mov byte [edi + 1], cl
mov dl, byte [esi + 4]
mov byte [edi + 2], dl
mov cl, byte [esi + 6]
mov byte [edi + 3], cl
mov dl, byte [esi + 1]
mov byte [ebx], dl
mov cl, byte [esi + 3]
mov byte [ebx + 1], cl
mov dl, byte [esi + 5]
mov byte [ebx + 2], dl
mov cl, byte [esi + 7]
mov byte [ebx + 3], cl
add esi, 8
add edi, 4
add ebx, 4
cmp esi, eax
jb 0x521ed8
jmp case.default.0x521dda
cmp dword [esp + 0x38], 2
jne 0x521f2b
mov dl, byte [esi + 3]
mov byte [eax], dl
mov cl, byte [esi + 7]
inc eax
mov byte [eax], cl
jmp 0x521f3b
movzx edx, byte [esi + 7]
movzx ecx, byte [esi + 3]
lea edx, [edx + ecx + 1]
shr edx, 1
mov byte [eax], dl
mov ecx, dword [esp + 0x34]
inc eax
cmp ecx, 2
jne 0x521f54
mov cl, byte [esi + 2]
mov byte [ebp], cl
mov dl, byte [esi + 6]
inc ebp
mov byte [ebp], dl
jmp 0x521f65
movzx ecx, byte [esi + 6]
movzx edx, byte [esi + 2]
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [ebp], cl
mov ecx, dword [esp + 0x28]
inc ebp
cmp ecx, 2
jne 0x521f7c
mov dl, byte [esi + 1]
mov byte [ebx], dl
mov cl, byte [esi + 5]
inc ebx
mov byte [ebx], cl
jmp 0x521f8c
movzx edx, byte [esi + 5]
movzx ecx, byte [esi + 1]
lea edx, [edx + ecx + 1]
shr edx, 1
mov byte [ebx], dl
mov ecx, dword [esp + 0x2c]
inc ebx
cmp ecx, 2
jne 0x521fa2
mov cl, byte [esi]
mov byte [edi], cl
mov dl, byte [esi + 4]
inc edi
mov byte [edi], dl
jmp 0x521fb1
movzx ecx, byte [esi + 4]
movzx edx, byte [esi]
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [edi], cl
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
add esi, edx
inc edi
cmp esi, ecx
jb case.0x521dda.25
jmp case.default.0x521dda
mov ecx, dword [esp + 0x38]
lea ecx, [ecx]
mov dl, byte [esi + 3]
mov byte [eax], dl
mov dl, byte [esi + 2]
mov byte [ebp], dl
mov dl, byte [esi + 1]
inc eax
mov byte [ebx], dl
mov dl, byte [esi]
inc ebp
inc ebx
mov byte [edi], dl
inc edi
cmp ecx, 2
jne 0x521ff3
mov dl, byte [esi + 7]
mov byte [eax], dl
inc eax
cmp dword [esp + 0x34], 2
jne 0x522001
mov dl, byte [esi + 6]
mov byte [ebp], dl
inc ebp
cmp dword [esp + 0x28], 2
jne 0x52200e
mov dl, byte [esi + 5]
mov byte [ebx], dl
inc ebx
cmp dword [esp + 0x2c], 2
jne 0x52201b
mov dl, byte [esi + 4]
mov byte [edi], dl
inc edi
add esi, dword [esp + 0x30]
cmp esi, dword [esp + 0x14]
jb 0x521fd0
jmp case.default.0x521dda
mov eax, dword [esp + 0x14]
mov edi, edi
cmp dword [esp + 0x34], 2
jne 0x522046
mov cl, byte [esi + 2]
mov byte [ebp], cl
mov dl, byte [esi + 5]
inc ebp
mov byte [ebp], dl
jmp 0x522057
movzx ecx, byte [esi + 5]
movzx edx, byte [esi + 2]
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [ebp], cl
mov ecx, dword [esp + 0x28]
inc ebp
cmp ecx, 2
jne 0x52206e
mov dl, byte [esi + 1]
mov byte [ebx], dl
mov cl, byte [esi + 4]
inc ebx
mov byte [ebx], cl
jmp 0x52207e
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 1]
lea edx, [edx + ecx + 1]
shr edx, 1
mov byte [ebx], dl
mov ecx, dword [esp + 0x2c]
inc ebx
cmp ecx, 2
jne 0x522094
mov cl, byte [esi]
mov byte [edi], cl
mov dl, byte [esi + 3]
inc edi
mov byte [edi], dl
jmp 0x5220a3
movzx ecx, byte [esi + 3]
movzx edx, byte [esi]
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [edi], cl
add esi, dword [esp + 0x30]
inc edi
cmp esi, eax
jb 0x522030
jmp case.default.0x521dda
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
lea esp, [esp]
mov dl, byte [esi + 2]
mov byte [ebp], dl
mov dl, byte [esi + 1]
mov byte [ebx], dl
mov dl, byte [esi]
inc ebp
inc ebx
mov byte [edi], dl
inc edi
cmp eax, 2
jne 0x5220de
mov dl, byte [esi + 5]
mov byte [ebp], dl
inc ebp
cmp dword [esp + 0x28], 2
jne 0x5220eb
mov dl, byte [esi + 4]
mov byte [ebx], dl
inc ebx
cmp dword [esp + 0x2c], 2
jne 0x5220f8
mov dl, byte [esi + 3]
mov byte [edi], dl
inc edi
add esi, dword [esp + 0x30]
cmp esi, ecx
jb 0x5220c0
jmp case.default.0x521dda
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
lea ecx, [ecx]
cmp dword [esp + 0x28], 2
jne 0x522124
mov cl, byte [esi + 1]
mov byte [ebx], cl
mov dl, byte [esi + 3]
inc ebx
mov byte [ebx], dl
jmp 0x522134
movzx ecx, byte [esi + 3]
movzx edx, byte [esi + 1]
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [ebx], cl
mov ecx, dword [esp + 0x2c]
inc ebx
cmp ecx, 2
jne 0x52214a
mov dl, byte [esi]
mov byte [edi], dl
mov cl, byte [esi + 2]
inc edi
mov byte [edi], cl
jmp 0x522159
movzx edx, byte [esi + 2]
movzx ecx, byte [esi]
lea edx, [edx + ecx + 1]
shr edx, 1
mov byte [edi], dl
add esi, ebp
inc edi
cmp esi, eax
jb 0x522110
jmp case.default.0x521dda
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dl, byte [esi + 1]
mov byte [ebx], dl
mov dl, byte [esi]
inc ebx
mov byte [edi], dl
inc edi
cmp eax, 2
jne 0x522187
mov dl, byte [esi + 3]
mov byte [ebx], dl
inc ebx
cmp dword [esp + 0x2c], 2
jne 0x522194
mov dl, byte [esi + 2]
mov byte [edi], dl
inc edi
add esi, ecx
cmp esi, ebp
jb 0x522171
jmp case.default.0x521dda
mov edx, dword [esp + 0x10]
cmp edx, 3
jl 0x5222bb
cmp edx, 4
jne 0x522234
movzx ecx, byte [esi + 3]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esi + 7]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + 0xb]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
sub ecx, 2
je 0x522206
dec ecx
je 0x5221f0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea edx, [edx + ecx*2 + 2]
add edx, dword [esp + 0x18]
shr edx, 2
mov byte [eax], dl
jmp 0x52222f
mov cl, byte [esp + 0x18]
mov byte [eax], cl
mov cl, byte [esp + 0x1c]
inc eax
mov byte [eax], cl
mov cl, byte [esp + 0x20]
inc eax
mov byte [eax], cl
jmp 0x522233
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea edx, [edx + ecx*2]
lea edx, [ecx + edx + 2]
mov ecx, dword [esp + 0x1c]
shr edx, 2
mov byte [eax], dl
mov edx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
inc eax
lea ecx, [edx + ecx + 2]
shr ecx, 2
mov byte [eax], cl
mov edx, dword [esp + 0x10]
inc eax
movzx ecx, byte [esi + 2]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + esi + 2]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + edx*2 + 2]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x34]
dec ecx
je 0x5222a0
sub ecx, 2
je 0x522287
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea edx, [edx + ecx*2]
lea edx, [ecx + edx + 2]
mov ecx, dword [esp + 0x1c]
shr edx, 2
mov byte [ebp], dl
mov edx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
inc ebp
lea ecx, [edx + ecx + 2]
shr ecx, 2
mov byte [ebp], cl
jmp 0x5222b6
mov cl, byte [esp + 0x18]
mov byte [ebp], cl
mov cl, byte [esp + 0x1c]
inc ebp
mov byte [ebp], cl
mov cl, byte [esp + 0x20]
inc ebp
mov byte [ebp], cl
jmp 0x5222ba
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea edx, [edx + ecx*2 + 2]
add edx, dword [esp + 0x18]
shr edx, 2
mov byte [ebp], dl
mov edx, dword [esp + 0x10]
inc ebp
movzx ecx, byte [esi + 1]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + esi + 1]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + edx*2 + 1]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
dec ecx
je 0x522322
sub ecx, 2
je 0x52230c
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea edx, [edx + ecx*2]
lea edx, [ecx + edx + 2]
mov ecx, dword [esp + 0x1c]
shr edx, 2
mov byte [ebx], dl
mov edx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
inc ebx
lea ecx, [edx + ecx + 2]
shr ecx, 2
mov byte [ebx], cl
jmp 0x522337
mov cl, byte [esp + 0x18]
mov byte [ebx], cl
mov cl, byte [esp + 0x1c]
inc ebx
mov byte [ebx], cl
mov cl, byte [esp + 0x20]
inc ebx
mov byte [ebx], cl
jmp 0x52233b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea edx, [edx + ecx*2 + 2]
add edx, dword [esp + 0x18]
shr edx, 2
mov byte [ebx], dl
mov edx, dword [esp + 0x10]
movzx ecx, byte [esi]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + esi]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + edx*2]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2c]
inc ebx
dec ecx
je 0x5223a0
sub ecx, 2
je 0x52238a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea edx, [edx + ecx*2]
lea edx, [ecx + edx + 2]
mov ecx, dword [esp + 0x1c]
shr edx, 2
mov byte [edi], dl
mov edx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
inc edi
lea ecx, [edx + ecx + 2]
shr ecx, 2
mov byte [edi], cl
jmp 0x5223b5
mov cl, byte [esp + 0x18]
mov byte [edi], cl
mov cl, byte [esp + 0x1c]
inc edi
mov byte [edi], cl
mov cl, byte [esp + 0x20]
inc edi
mov byte [edi], cl
jmp 0x5223b9
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea edx, [edx + ecx*2 + 2]
add edx, dword [esp + 0x18]
shr edx, 2
mov byte [edi], dl
mov edx, dword [esp + 0x10]
add esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
inc edi
cmp esi, ecx
jb 0x5221a3
jmp 0x5216f4
mov edx, dword [esp + 0x10]
cmp edx, 3
jl 0x522431
cmp edx, 4
jne 0x522404
cmp dword [esp + 0x38], 2
jl 0x5223fe
mov cl, byte [esi + 3]
mov byte [eax], cl
mov ecx, dword [esp + 0x38]
inc eax
cmp ecx, 3
jl 0x5223f9
mov cl, byte [esi + 7]
mov byte [eax], cl
inc eax
mov cl, byte [esi + 0xb]
jmp 0x522401
mov cl, byte [esi + 7]
mov byte [eax], cl
inc eax
cmp dword [esp + 0x34], 2
jl 0x522429
mov cl, byte [esi + 2]
mov byte [ebp], cl
mov ecx, dword [esp + 0x34]
inc ebp
cmp ecx, 3
jl 0x522423
mov cl, byte [edx + esi + 2]
mov byte [ebp], cl
inc ebp
mov cl, byte [esi + edx*2 + 2]
jmp 0x52242d
mov cl, byte [edx + esi + 2]
mov byte [ebp], cl
inc ebp
cmp dword [esp + 0x28], 2
jl 0x522454
mov cl, byte [esi + 1]
mov byte [ebx], cl
mov ecx, dword [esp + 0x28]
inc ebx
cmp ecx, 3
jl 0x52244e
mov cl, byte [edx + esi + 1]
mov byte [ebx], cl
inc ebx
mov cl, byte [esi + edx*2 + 1]
jmp 0x522458
mov cl, byte [edx + esi + 1]
mov byte [ebx], cl
mov ecx, dword [esp + 0x2c]
inc ebx
cmp ecx, 2
jl 0x52247d
mov cl, byte [esi]
mov byte [edi], cl
mov ecx, dword [esp + 0x2c]
inc edi
cmp ecx, 3
jl 0x522478
mov cl, byte [edx + esi]
mov byte [edi], cl
inc edi
mov cl, byte [esi + edx*2]
jmp 0x522480
mov cl, byte [edx + esi]
mov byte [edi], cl
add esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
inc edi
cmp esi, ecx
jb 0x5223d3
jmp 0x5216f4
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx*2 - 7]
mov dword [esp + 0x48], ecx
cmp edx, 3
jl 0x522621
cmp edx, 4
jne 0x522564
movzx ecx, byte [esi + 3]
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi + 7]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esi + 0xb]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + 0xf]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
dec ecx
je 0x522544
dec ecx
je 0x522521
sub ecx, 2
je 0x522503
mov dl, byte [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov byte [eax], dl
mov edx, dword [esp + 0x18]
lea ecx, [ecx + edx + 1]
mov dl, byte [esp + 0x20]
inc eax
shr ecx, 1
mov byte [eax], cl
inc eax
jmp 0x52255d
mov cl, byte [esp + 0x24]
mov byte [eax], cl
mov cl, byte [esp + 0x18]
mov byte [eax + 1], cl
mov cl, byte [esp + 0x1c]
inc eax
inc eax
mov byte [eax], cl
mov cl, byte [esp + 0x20]
inc eax
mov byte [eax], cl
jmp 0x522563
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
lea edx, [edx + ecx + 1]
mov ecx, dword [esp + 0x20]
shr edx, 1
mov byte [eax], dl
mov edx, dword [esp + 0x1c]
inc eax
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [eax], cl
jmp 0x52255f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add edx, ecx
add edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
lea edx, [edx + ecx + 2]
shr edx, 2
mov byte [eax], dl
mov edx, dword [esp + 0x10]
inc eax
movzx ecx, byte [esi + 2]
mov dword [esp + 0x24], ecx
movzx ecx, byte [edx + esi + 2]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esi + edx*2 + 2]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
movzx ecx, byte [ecx + esi + 1]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x34]
dec ecx
je 0x522600
dec ecx
je 0x5225db
sub ecx, 2
je 0x5225ba
mov dl, byte [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov byte [ebp], dl
mov edx, dword [esp + 0x18]
lea ecx, [ecx + edx + 1]
mov dl, byte [esp + 0x20]
inc ebp
shr ecx, 1
mov byte [ebp], cl
inc ebp
jmp 0x522619
mov cl, byte [esp + 0x24]
mov byte [ebp], cl
mov cl, byte [esp + 0x18]
mov byte [ebp + 1], cl
mov cl, byte [esp + 0x1c]
inc ebp
inc ebp
mov byte [ebp], cl
mov cl, byte [esp + 0x20]
inc ebp
mov byte [ebp], cl
jmp 0x522620
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
lea edx, [edx + ecx + 1]
mov ecx, dword [esp + 0x20]
shr edx, 1
mov byte [ebp], dl
mov edx, dword [esp + 0x1c]
inc ebp
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [ebp], cl
jmp 0x52261c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add edx, ecx
add edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
lea edx, [edx + ecx + 2]
shr edx, 2
mov byte [ebp], dl
mov edx, dword [esp + 0x10]
inc ebp
movzx ecx, byte [esi + 1]
mov dword [esp + 0x24], ecx
movzx ecx, byte [edx + esi + 1]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esi + edx*2 + 1]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
movzx ecx, byte [ecx + esi]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
dec ecx
je 0x5226b5
dec ecx
je 0x522692
sub ecx, 2
je 0x522674
mov dl, byte [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov byte [ebx], dl
mov edx, dword [esp + 0x18]
lea ecx, [ecx + edx + 1]
mov dl, byte [esp + 0x20]
inc ebx
shr ecx, 1
mov byte [ebx], cl
inc ebx
jmp 0x5226ce
mov cl, byte [esp + 0x24]
mov byte [ebx], cl
mov cl, byte [esp + 0x18]
mov byte [ebx + 1], cl
mov cl, byte [esp + 0x1c]
inc ebx
inc ebx
mov byte [ebx], cl
mov cl, byte [esp + 0x20]
inc ebx
mov byte [ebx], cl
jmp 0x5226d4
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
lea edx, [edx + ecx + 1]
mov ecx, dword [esp + 0x20]
shr edx, 1
mov byte [ebx], dl
mov edx, dword [esp + 0x1c]
inc ebx
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [ebx], cl
jmp 0x5226d0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add edx, ecx
add edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
lea edx, [edx + ecx + 2]
shr edx, 2
mov byte [ebx], dl
mov edx, dword [esp + 0x10]
movzx ecx, byte [esi]
mov dword [esp + 0x24], ecx
movzx ecx, byte [edx + esi]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esi + edx*2]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x48]
movzx ecx, byte [ecx + esi + 7]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2c]
inc ebx
dec ecx
je 0x522767
dec ecx
je 0x522744
sub ecx, 2
je 0x522726
mov dl, byte [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov byte [edi], dl
mov edx, dword [esp + 0x18]
lea ecx, [ecx + edx + 1]
mov dl, byte [esp + 0x20]
inc edi
shr ecx, 1
mov byte [edi], cl
inc edi
jmp 0x522780
mov cl, byte [esp + 0x24]
mov byte [edi], cl
mov cl, byte [esp + 0x18]
mov byte [edi + 1], cl
mov cl, byte [esp + 0x1c]
inc edi
inc edi
mov byte [edi], cl
mov cl, byte [esp + 0x20]
inc edi
mov byte [edi], cl
jmp 0x522786
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
lea edx, [edx + ecx + 1]
mov ecx, dword [esp + 0x20]
shr edx, 1
mov byte [edi], dl
mov edx, dword [esp + 0x1c]
inc edi
lea ecx, [ecx + edx + 1]
shr ecx, 1
mov byte [edi], cl
jmp 0x522782
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add edx, ecx
add edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
lea edx, [edx + ecx + 2]
shr edx, 2
mov byte [edi], dl
mov edx, dword [esp + 0x10]
add esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
inc edi
cmp esi, ecx
jb 0x5224a4
jmp 0x5216f4
mov edx, dword [esp + 0x10]
cmp edx, 3
jl 0x522831
cmp edx, 4
jne 0x5227e9
cmp dword [esp + 0x38], 1
jne 0x5227ba
mov cl, byte [esi + 7]
jmp 0x5227e6
mov cl, byte [esi + 3]
mov byte [eax], cl
mov ecx, dword [esp + 0x38]
inc eax
cmp ecx, 3
jl 0x5227e3
mov cl, byte [esi + 7]
mov byte [eax], cl
mov ecx, dword [esp + 0x38]
inc eax
cmp ecx, 4
jl 0x5227de
mov cl, byte [esi + 0xb]
mov byte [eax], cl
inc eax
mov cl, byte [esi + 0xf]
jmp 0x5227e6
mov cl, byte [esi + 0xb]
mov byte [eax], cl
inc eax
cmp dword [esp + 0x34], 1
jne 0x5227f6
mov cl, byte [edx + esi + 2]
jmp 0x52282d
mov cl, byte [esi + 2]
mov byte [ebp], cl
mov ecx, dword [esp + 0x34]
inc ebp
cmp ecx, 3
jl 0x522829
mov cl, byte [edx + esi + 2]
mov byte [ebp], cl
mov ecx, dword [esp + 0x34]
inc ebp
cmp ecx, 4
jl 0x52281f
mov cl, byte [esi + edx*2 + 2]
mov byte [ebp], cl
inc ebp
mov ecx, dword [esp + 0x40]
mov cl, byte [ecx + esi + 1]
jmp 0x52282d
mov cl, byte [esi + edx*2 + 2]
mov byte [ebp], cl
inc ebp
cmp dword [esp + 0x28], 1
jne 0x52283e
mov cl, byte [edx + esi + 1]
jmp 0x522871
mov cl, byte [esi + 1]
mov byte [ebx], cl
mov ecx, dword [esp + 0x28]
inc ebx
cmp ecx, 3
jl 0x52286d
mov cl, byte [edx + esi + 1]
mov byte [ebx], cl
mov ecx, dword [esp + 0x28]
inc ebx
cmp ecx, 4
jl 0x522864
mov cl, byte [esi + edx*2 + 1]
mov byte [ebx], cl
inc ebx
mov ecx, dword [esp + 0x40]
mov cl, byte [ecx + esi]
jmp 0x522871
mov cl, byte [esi + edx*2 + 1]
mov byte [ebx], cl
mov ecx, dword [esp + 0x2c]
inc ebx
cmp ecx, 1
jne 0x522882
mov cl, byte [edx + esi]
jmp 0x5228b2
mov cl, byte [esi]
mov byte [edi], cl
mov ecx, dword [esp + 0x2c]
inc edi
cmp ecx, 3
jl 0x5228af
mov cl, byte [edx + esi]
mov byte [edi], cl
mov ecx, dword [esp + 0x2c]
inc edi
cmp ecx, 4
jl 0x5228a5
mov cl, byte [esi + edx*2]
mov byte [edi], cl
inc edi
lea ecx, [edx + edx*2 - 7]
mov cl, byte [ecx + esi + 7]
jmp 0x5228b2
mov cl, byte [esi + edx*2]
mov byte [edi], cl
add esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
inc edi
cmp esi, ecx
jb 0x5227a0
jmp 0x5216f4
xor esi, esi
sub edx, 2
je 0x522909
dec edx
je 0x5228f0
dec edx
jne 0x522925
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
push esi
push eax
add eax, 0x22c
push eax
push edx
call fcn.00520d10
add esp, 0x10
mov eax, dword [esp + 0x6c]
push esi
push eax
add eax, 0x1fc
push eax
mov eax, dword [esp + 0x68]
push eax
call fcn.00520d10
add esp, 0x10
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x60]
push esi
push edi
lea eax, [edi + 0x1cc]
push eax
push ecx
call fcn.00520d10
add esp, 0x10
jmp 0x522929
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x64]
push esi
push edi
push edx
push eax
call fcn.00520d10
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret