Function at 0x4c6da4
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde8
xor eax, eax
xor edx, edx
xor ecx, ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 8]
xor ecx, ecx
lea edi, [ebp - 0x6c]
mov edx, dword [eax]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], ecx
xor eax, eax
mov dword [ebp - 0x54], eax
xor eax, eax
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx]
xor edx, edx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [edi], eax
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x78], ecx
xor eax, eax
mov dword [ebp - 0x7c], eax
xor edx, edx
mov dword [ebp - 0x80], edx
test byte [ebp - 0x4b], 8
setne cl
and ecx, 1
mov dword [ebp - 0x84], ecx
test byte [ebp - 0x4b], 2
setne al
and eax, 1
xor ecx, ecx
mov dword [ebp - 0x18], eax
mov eax, 0xfffffffe
mov edx, dword [ebp - 0x18]
xor edx, 1
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
test byte [ebp - 0x4c], 1
je 0x4c6e56
mov edx, 1
jmp 0x4c6e58
xor edx, edx
mov dword [ebp - 0x40], edx
mov eax, dword [edi]
movzx esi, byte [eax]
test esi, esi
jne 0x4c6e79
cmp dword [ebp - 0x74], 0
je 0x4c6e79
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dword [edi], eax
mov dword [ebp - 0x74], edx
mov ecx, dword [edi]
movzx esi, byte [ecx]
cmp dword [ebp + 0x34], 0
je 0x4c6f13
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x10]
add edx, dword [ecx + 0x34]
add edx, 0xffffff9c
cmp ebx, edx
jbe 0x4c6ea4
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x34
jmp 0x4cadca
cmp ebx, dword [ebp - 0x58]
jae 0x4c6eac
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x34]
mov ecx, ebx
mov edx, 0x7fffffeb
sub edx, dword [eax]
sub ecx, dword [ebp - 0x58]
cmp edx, ecx
jge 0x4c6ecd
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4cadca
mov edx, ebx
mov ecx, dword [ebp + 0x34]
sub edx, dword [ebp - 0x58]
add dword [ecx], edx
cmp dword [ebp - 0x78], 0
je 0x4c6f0b
mov eax, dword [ebp - 0x78]
cmp eax, dword [ebp - 0x5c]
jbe 0x4c6f0e
mov edx, ebx
sub edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x78]
push ecx
mov eax, dword [ebp - 0x5c]
push eax
call fcn.004e084c
mov edx, dword [ebp - 0x78]
add esp, 0xc
sub edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x78], ecx
sub ebx, edx
jmp 0x4c6f0e
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], ebx
jmp 0x4c6f38
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp + 0x30]
add edx, dword [ecx + 0x34]
add edx, 0xffffff9c
cmp edx, dword [eax + 0x24]
jae 0x4c6f38
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x4cadca
cmp dword [ebp - 0x64], 0
je 0x4c6fa5
test esi, esi
je 0x4c6fa5
cmp esi, 0x5c
jne 0x4c6f5d
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x45
jne 0x4c6f5d
xor eax, eax
mov dword [ebp - 0x64], eax
inc dword [edi]
jmp 0x4cadc3
cmp dword [ebp - 0x7c], 0
je 0x4c6f81
cmp dword [ebp + 0x34], 0
jne 0x4c6f7c
mov edx, dword [ebp + 0x30]
push edx
mov ecx, dword [edi]
push ecx
mov eax, dword [ebp - 0x7c]
push eax
call fcn.004c5fec
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x7c], edx
test byte [ebp - 0x4b], 0x40
je 0x4cac69
mov dword [ebp - 0x7c], ebx
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [edi]
push eax
push ebx
call fcn.004c5fb4
add esp, 0xc
mov ebx, eax
jmp 0x4cac69
cmp esi, 0x2a
je 0x4c6fcb
cmp esi, 0x2b
je 0x4c6fcb
cmp esi, 0x3f
je 0x4c6fcb
cmp esi, 0x7b
jne 0x4c6fc7
mov edx, dword [edi]
inc edx
push edx
call fcn.004c46d8
pop ecx
test eax, eax
jne 0x4c6fcb
xor ecx, ecx
jmp 0x4c6fd0
mov ecx, 1
mov dword [ebp - 0xa8], ecx
cmp dword [ebp - 0xa8], 0
jne 0x4c700e
cmp dword [ebp - 0x7c], 0
je 0x4c700e
mov eax, dword [ebp - 0x50]
add dword [ebp - 0x50], 0xffffffff
test eax, eax
jg 0x4c700e
cmp dword [ebp + 0x34], 0
jne 0x4c7009
mov edx, dword [ebp + 0x30]
push edx
mov ecx, dword [edi]
push ecx
mov eax, dword [ebp - 0x7c]
push eax
call fcn.004c5fec
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x7c], edx
test byte [ebp - 0x4c], 8
je 0x4c7106
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0xc]
test byte [eax + esi], 1
jne 0x4cadc3
cmp esi, 0x23
jne 0x4c7106
inc dword [edi]
jmp 0x4c70ee
mov edx, dword [ebp + 0x30]
cmp dword [edx + 0x68], 0
je 0x4c7081
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x1c]
cmp eax, dword [edi]
jbe 0x4c7076
mov edx, dword [ebp - 0x84]
push edx
mov ecx, dword [ebp + 0x30]
add ecx, 0x6c
push ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x1c]
push edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x68]
push eax
mov edx, dword [edi]
push edx
call fcn.004d7994
add esp, 0x14
test eax, eax
jne 0x4c707a
xor ecx, ecx
jmp 0x4c70bc
mov ecx, 1
jmp 0x4c70bc
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x1c]
sub edx, dword [ecx + 0x6c]
cmp edx, dword [edi]
jb 0x4c70b3
mov eax, dword [edi]
mov ecx, dword [ebp + 0x30]
mov dl, byte [eax]
cmp dl, byte [ecx + 0x70]
jne 0x4c70b3
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x6c], 1
je 0x4c70b7
mov edx, dword [edi]
mov eax, dword [ebp + 0x30]
mov cl, byte [edx + 1]
cmp cl, byte [eax + 0x71]
je 0x4c70b7
xor ecx, ecx
jmp 0x4c70bc
mov ecx, 1
test ecx, ecx
je 0x4c70cb
mov edx, dword [ebp + 0x30]
mov eax, dword [edx + 0x6c]
dec eax
add dword [edi], eax
jmp 0x4c70f9
inc dword [edi]
cmp dword [ebp - 0x84], 0
je 0x4c70ee
jmp 0x4c70da
inc dword [edi]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
and ecx, 0xc0
cmp ecx, 0x80
je 0x4c70d8
mov eax, dword [edi]
cmp byte [eax], 0
jne 0x4c7038
mov edx, dword [edi]
cmp byte [edx], 0
jne 0x4cadc3
xor esi, esi
test byte [ebp - 0x4b], 0x40
je 0x4c712a
cmp dword [ebp - 0xa8], 0
jne 0x4c712a
mov dword [ebp - 0x7c], ebx
mov eax, dword [ebp + 0x30]
push eax
mov edx, dword [edi]
push edx
push ebx
call fcn.004c5fb4
add esp, 0xc
mov ebx, eax
mov ecx, esi
cmp ecx, 0x3f
jg 0x4c7178
je 0x4c81fa
cmp ecx, 0x29
jg 0x4c715a
je 0x4c71b0
sub ecx, 1
jb 0x4c71b0
sub ecx, 0x23
je 0x4c723f
sub ecx, 4
je 0x4c928c
jmp 0x4cac69
sub ecx, 0x2a
je 0x4c81dc
dec ecx
je 0x4c81ea
sub ecx, 3
je 0x4c7258
jmp 0x4cac69
cmp ecx, 0x5e
jg 0x4c719f
je 0x4c7215
sub ecx, 0x5b
je 0x4c72b4
dec ecx
je 0x4ca8d0
dec ecx
je 0x4c7294
jmp 0x4cac69
sub ecx, 0x7b
je 0x4c81a7
dec ecx
je 0x4c71b0
jmp 0x4cac69
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x28]
mov dword [ecx], eax
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [edx], ecx
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], ebx
mov eax, dword [ebp + 0x10]
mov edx, dword [edi]
mov dword [eax], edx
cmp dword [ebp + 0x34], 0
je 0x4c720b
mov ecx, dword [ebp + 0x34]
mov edx, ebx
mov eax, 0x7fffffeb
sub eax, dword [ecx]
sub edx, dword [ebp - 0x58]
cmp eax, edx
jge 0x4c7203
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
jmp 0x4cadca
sub ebx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x34]
add dword [eax], ebx
mov eax, 1
jmp 0x4cadd3
xor edx, edx
mov dword [ebp - 0x78], edx
test byte [ebp - 0x4c], 2
je 0x4c7236
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4c722d
mov dword [ebp - 0x28], 0xffffffff
mov byte [ebx], 0x1a
inc ebx
jmp 0x4cadc3
mov byte [ebx], 0x19
inc ebx
jmp 0x4cadc3
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test byte [ebp - 0x4c], 2
je 0x4c724e
mov al, 0x1c
jmp 0x4c7250
mov al, 0x1b
mov byte [ebx], al
inc ebx
jmp 0x4cadc3
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4c7265
mov dword [ebp - 0x28], 0xffffffff
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x78], ebx
test byte [ebp - 0x4c], 4
je 0x4c728a
mov cl, 0xd
jmp 0x4c728c
mov cl, 0xc
mov byte [ebx], cl
inc ebx
jmp 0x4cadc3
mov eax, dword [ebp + 0x30]
test byte [eax + 0x53], 2
je 0x4cac69
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x40
jmp 0x4cadca
mov dword [ebp - 0x78], ebx
mov eax, dword [edi]
cmp byte [eax + 1], 0x3a
je 0x4c72cf
mov edx, dword [edi]
cmp byte [edx + 1], 0x2e
je 0x4c72cf
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x3d
jne 0x4c7300
lea eax, [ebp - 0x70]
push eax
mov edx, dword [edi]
push edx
call fcn.004c5e54
add esp, 8
test eax, eax
je 0x4c7300
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x3a
jne 0x4c72f1
mov eax, 0xd
jmp 0x4c72f6
mov eax, 0x1f
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x4cadca
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
inc dword [edi]
mov eax, dword [edi]
movzx esi, byte [eax]
cmp esi, 0x5c
jne 0x4c733c
mov eax, dword [edi]
cmp byte [eax + 1], 0x45
jne 0x4c7320
inc dword [edi]
jmp 0x4c7308
push 3
push 0x5b2eca
mov edx, dword [edi]
inc edx
push edx
call fcn.004e0a9c
add esp, 0xc
test eax, eax
jne 0x4c7356
add dword [edi], 3
jmp 0x4c7308
cmp dword [ebp - 0x9c], 0
jne 0x4c7356
cmp esi, 0x5e
jne 0x4c7356
mov dword [ebp - 0x9c], 1
jmp 0x4c7308
cmp esi, 0x5d
jne 0x4c7394
mov ecx, dword [ebp + 0x30]
test byte [ecx + 0x53], 2
je 0x4c7394
cmp dword [ebp - 0x9c], 0
je 0x4c7371
mov al, 0xd
jmp 0x4c7373
mov al, 0x97
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4c7383
mov dword [ebp - 0x28], 0xffffffff
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], ecx
jmp 0x4cadc3
xor eax, eax
mov dword [ebp - 0xa0], eax
xor edx, edx
mov dword [ebp - 0xb4], edx
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
push 0x20
push 0
lea eax, [ebp - 0x1f8]
push eax
call fcn.004e0898
xor edx, edx
lea ecx, [ebx + 4]
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp - 0x90]
add esp, 0xc
test esi, esi
mov dword [ebp - 0x98], eax
je 0x4c8048
cmp dword [ebp - 0x84], 0
je 0x4c753d
cmp esi, 0xc0
jb 0x4c753d
mov edx, dword [edi]
movzx esi, byte [edx]
cmp esi, 0xc0
jb 0x4c753d
test esi, 0x20
jne 0x4c742f
mov eax, dword [edi]
and esi, 0x1f
xor edx, edx
mov dl, byte [eax + 1]
shl esi, 6
and edx, 0x3f
or esi, edx
inc dword [edi]
jmp 0x4c753d
test esi, 0x10
jne 0x4c7460
mov ecx, dword [edi]
xor eax, eax
mov edx, dword [edi]
and esi, 0xf
mov al, byte [ecx + 1]
xor ecx, ecx
and eax, 0x3f
mov cl, byte [edx + 2]
shl eax, 6
and ecx, 0x3f
shl esi, 0xc
or esi, eax
or esi, ecx
add dword [edi], 2
jmp 0x4c753d
test esi, 8
jne 0x4c74a0
mov eax, dword [edi]
xor edx, edx
and esi, 7
mov ecx, dword [edi]
mov dl, byte [eax + 1]
xor eax, eax
and edx, 0x3f
mov al, byte [ecx + 2]
shl edx, 0xc
and eax, 0x3f
shl esi, 0x12
xor ecx, ecx
or esi, edx
mov edx, dword [edi]
shl eax, 6
or esi, eax
mov cl, byte [edx + 3]
and ecx, 0x3f
or esi, ecx
add dword [edi], 3
jmp 0x4c753d
test esi, 4
jne 0x4c74ec
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [edi]
and esi, 3
mov dl, byte [eax + 1]
xor eax, eax
and edx, 0x3f
mov al, byte [ecx + 2]
shl edx, 0x12
and eax, 0x3f
shl esi, 0x18
xor ecx, ecx
or esi, edx
mov edx, dword [edi]
shl eax, 0xc
or esi, eax
mov eax, dword [edi]
mov cl, byte [edx + 3]
xor edx, edx
and ecx, 0x3f
mov dl, byte [eax + 4]
shl ecx, 6
and edx, 0x3f
or esi, ecx
or esi, edx
add dword [edi], 4
jmp 0x4c753d
mov ecx, dword [edi]
xor eax, eax
and esi, 1
mov edx, dword [edi]
mov al, byte [ecx + 1]
xor ecx, ecx
and eax, 0x3f
mov cl, byte [edx + 2]
shl eax, 0x18
and ecx, 0x3f
shl esi, 0x1e
xor edx, edx
or esi, eax
mov eax, dword [edi]
shl ecx, 0x12
or esi, ecx
mov dl, byte [eax + 3]
and edx, 0x3f
mov ecx, dword [edi]
shl edx, 0xc
xor eax, eax
or esi, edx
mov edx, dword [edi]
mov al, byte [ecx + 4]
xor ecx, ecx
and eax, 0x3f
mov cl, byte [edx + 5]
shl eax, 6
and ecx, 0x3f
or esi, eax
or esi, ecx
add dword [edi], 5
cmp dword [ebp + 0x34], 0
je 0x4c7578
mov eax, dword [ebp - 0x90]
cmp eax, dword [ebp - 0x98]
jbe 0x4c7578
mov dword [ebp - 0x94], 1
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp + 0x34]
sub edx, dword [ebp - 0x98]
add dword [ecx], edx
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x64], 0
je 0x4c75a4
cmp esi, 0x5c
jne 0x4c7be9
mov edx, dword [edi]
cmp byte [edx + 1], 0x45
jne 0x4c7be9
xor ecx, ecx
mov dword [ebp - 0x64], ecx
inc dword [edi]
jmp 0x4c800f
cmp esi, 0x5b
jne 0x4c781a
mov eax, dword [edi]
cmp byte [eax + 1], 0x3a
je 0x4c75c9
mov edx, dword [edi]
cmp byte [edx + 1], 0x2e
je 0x4c75c9
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x3d
jne 0x4c781a
lea eax, [ebp - 0x70]
push eax
mov edx, dword [edi]
push edx
call fcn.004c5e54
add esp, 8
test eax, eax
je 0x4c781a
xor ecx, ecx
mov dword [ebp - 0xf8], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 8]
mov dword [ebp - 0x108], edx
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x3a
je 0x4c760a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1f
jmp 0x4cadca
add dword [edi], 2
mov edx, dword [edi]
cmp byte [edx], 0x5e
jne 0x4c762a
mov dword [ebp - 0xf8], 1
mov dword [ebp - 0xa0], 1
inc dword [edi]
mov ecx, dword [ebp - 0x70]
sub ecx, dword [edi]
push ecx
mov eax, dword [edi]
push eax
call fcn.004c5ec4
add esp, 8
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0xfc], 0
jge 0x4c7658
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1e
jmp 0x4cadca
test byte [ebp - 0x4c], 1
je 0x4c766f
cmp dword [ebp - 0xfc], 2
jg 0x4c766f
xor ecx, ecx
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0xfc]
lea eax, [eax + eax*2]
mov dword [ebp - 0xfc], eax
push 0x20
mov edx, dword [ebp - 0xfc]
mov ecx, dword [edx*4 + 0x5b20e0]
add ecx, dword [ebp - 0x108]
push ecx
lea eax, [ebp - 0x218]
push eax
call fcn.004e0828
add esp, 0xc
mov edx, dword [ebp - 0xfc]
mov ecx, dword [edx*4 + 0x5b20e4]
mov dword [ebp - 0x100], ecx
mov eax, dword [ebp - 0xfc]
mov edx, dword [eax*4 + 0x5b20e8]
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x100], 0
jl 0x4c7745
cmp dword [ebp - 0x104], 0
jl 0x4c7710
xor esi, esi
lea eax, [ebp - 0x218]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x100]
add edx, esi
mov ecx, dword [ebp - 0x108]
mov al, byte [ecx + edx]
mov edx, dword [ebp - 0x1d4]
or byte [edx], al
inc esi
inc dword [ebp - 0x1d4]
cmp esi, 0x20
jb 0x4c76e9
jmp 0x4c7745
xor esi, esi
lea eax, [ebp - 0x218]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x108]
add edx, esi
inc esi
mov al, byte [ecx + edx]
mov edx, dword [ebp - 0x1d4]
not al
and byte [edx], al
inc dword [ebp - 0x1d4]
cmp esi, 0x20
jb 0x4c771e
cmp dword [ebp - 0x104], 0
jge 0x4c7754
neg dword [ebp - 0x104]
cmp dword [ebp - 0x104], 1
jne 0x4c7766
and byte [ebp - 0x217], 0xc3
jmp 0x4c7776
cmp dword [ebp - 0x104], 2
jne 0x4c7776
and byte [ebp - 0x20d], 0x7f
cmp dword [ebp - 0xf8], 0
je 0x4c77bf
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d8], eax
lea edx, [ebp - 0x218]
mov dword [ebp - 0x1d4], edx
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ebp - 0x1d8]
inc esi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1d4]
cmp esi, 0x20
jb 0x4c7799
jmp 0x4c77fb
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d4], eax
lea edx, [ebp - 0x218]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1d4]
inc esi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d4]
inc dword [ebp - 0x1d8]
cmp esi, 0x20
jb 0x4c77d9
mov ecx, dword [ebp - 0x70]
inc ecx
mov dword [edi], ecx
mov dword [ebp - 0xb4], 1
mov dword [ebp - 0xb8], 2
jmp 0x4c800f
cmp esi, 0x5c
jne 0x4c7be9
push 1
mov eax, dword [ebp - 0x4c]
push eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x38]
lea edx, [ebp - 0xe8]
push ecx
mov eax, dword [ebp + 0x14]
push eax
push edx
push edi
call fcn.004c4750
add esp, 0x18
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x4cadca
test eax, eax
jne 0x4c785f
mov esi, dword [ebp - 0xe8]
jmp 0x4c7be9
cmp eax, 5
jne 0x4c786e
mov esi, 8
jmp 0x4c7be9
cmp eax, 0xc
jne 0x4c7886
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x47
jmp 0x4cadca
cmp eax, 0x1a
jne 0x4c78b4
mov edx, dword [edi]
cmp byte [edx + 1], 0x5c
jne 0x4c78a3
mov ecx, dword [edi]
cmp byte [ecx + 2], 0x45
jne 0x4c78a3
add dword [edi], 2
jmp 0x4c800f
mov dword [ebp - 0x64], 1
jmp 0x4c800f
cmp eax, 0x19
je 0x4c800f
mov edx, dword [ebp + 0x30]
add eax, 0xfffffffa
mov ecx, dword [edx + 8]
mov dword [ebp - 0x10c], ecx
inc dword [ebp - 0xb4]
add dword [ebp - 0xb8], 2
cmp eax, 0xf
ja case.0x4c78e2.12
jmp dword [eax*4 + 0x4c78e9]
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x10c]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d4], ecx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
inc esi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1d4]
cmp esi, 0x20
jb 0x4c7946
jmp 0x4c800f
mov dword [ebp - 0xa0], 1
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x10c]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1d4]
inc esi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d4]
inc dword [ebp - 0x1d8]
cmp esi, 0x20
jb 0x4c7994
jmp 0x4c800f
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x10c]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d4], ecx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
inc esi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1d4]
cmp esi, 0x20
jb 0x4c79dd
jmp 0x4c800f
mov dword [ebp - 0xa0], 1
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x10c]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1d4]
inc esi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d4]
inc dword [ebp - 0x1d8]
cmp esi, 0x20
jb 0x4c7a2e
jmp 0x4c800f
mov eax, dword [ebp - 0x10c]
mov esi, 2
mov dl, byte [eax]
or byte [ebp - 0x1f8], dl
mov ecx, dword [ebp - 0x10c]
mov al, byte [ecx + 1]
and al, 0xf7
or byte [ebp - 0x1f7], al
lea eax, [ebp - 0x1f6]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x10c]
lea ecx, [edx + 2]
mov dword [ebp - 0x1d4], ecx
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
inc esi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1d4]
cmp esi, 0x20
jb 0x4c7a96
jmp 0x4c800f
mov dword [ebp - 0xa0], 1
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x10c]
mov ecx, edx
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1d4]
inc esi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d4]
inc dword [ebp - 0x1d8]
cmp esi, 0x20
jb 0x4c7ae3
or byte [ebp - 0x1f7], 8
jmp 0x4c800f
push 0xffffffffffffffff
push 0x5b2f50
mov eax, dword [ebp + 0x30]
lea ecx, [ebp - 0x90]
push eax
lea eax, [ebp - 0x1f8]
mov edx, dword [ebp - 0x4c]
push edx
push ecx
push eax
call fcn.004c6cac
add esp, 0x18
jmp 0x4c800f
push 0x5b2f50
lea eax, [ebp - 0x90]
mov edx, dword [ebp + 0x30]
push edx
lea edx, [ebp - 0x1f8]
mov ecx, dword [ebp - 0x4c]
push ecx
push eax
push edx
call fcn.004c6d0c
add esp, 0x14
jmp 0x4c800f
push 0xffffffffffffffff
push 0x5b2fa0
mov ecx, dword [ebp + 0x30]
lea edx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x1f8]
mov eax, dword [ebp - 0x4c]
push eax
push edx
push ecx
call fcn.004c6cac
add esp, 0x18
jmp 0x4c800f
push 0x5b2fa0
lea ecx, [ebp - 0x90]
mov eax, dword [ebp + 0x30]
push eax
lea eax, [ebp - 0x1f8]
mov edx, dword [ebp - 0x4c]
push edx
push ecx
push eax
call fcn.004c6d0c
add esp, 0x14
jmp 0x4c800f
test byte [ebp - 0x4c], 0x40
je 0x4c7bcb
mov edx, dword [ebp + 0x14]
mov dword [edx], 7
jmp 0x4cadca
dec dword [ebp - 0xb4]
sub dword [ebp - 0xb8], 2
mov ecx, dword [edi]
movzx esi, byte [ecx]
jmp 0x4c7be9
xor eax, eax
mov dword [ebp - 0x64], eax
add dword [edi], 2
mov edx, dword [edi]
cmp byte [edx + 1], 0x5c
jne 0x4c7bf9
mov ecx, dword [edi]
cmp byte [ecx + 2], 0x45
je 0x4c7be1
mov eax, dword [edi]
cmp esi, 0xd
mov dword [ebp - 0xf4], eax
je 0x4c7c0b
cmp esi, 0xa
jne 0x4c7c15
mov edx, dword [ebp + 0x30]
or dword [edx + 0x54], 0x800
cmp dword [ebp - 0x64], 0
jne 0x4c7f19
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x2d
jne 0x4c7f19
add dword [edi], 2
jmp 0x4c7c33
add dword [edi], 2
mov eax, dword [edi]
cmp byte [eax], 0x5c
jne 0x4c7c64
mov edx, dword [edi]
cmp byte [edx + 1], 0x45
je 0x4c7c30
jmp 0x4c7c64
add dword [edi], 2
mov ecx, dword [edi]
cmp byte [ecx], 0x5c
jne 0x4c7c5b
mov eax, dword [edi]
cmp byte [eax + 1], 0x45
jne 0x4c7c5b
add dword [edi], 2
jmp 0x4c7c64
mov dword [ebp - 0x64], 1
jmp 0x4c7c73
mov edx, dword [edi]
cmp byte [edx], 0x5c
jne 0x4c7c73
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x51
je 0x4c7c44
mov eax, dword [edi]
cmp byte [eax], 0
je 0x4c7c87
cmp dword [ebp - 0x64], 0
jne 0x4c7c94
mov edx, dword [edi]
cmp byte [edx], 0x5d
jne 0x4c7c94
mov ecx, dword [ebp - 0xf4]
mov dword [edi], ecx
jmp 0x4c7f19
cmp dword [ebp - 0x84], 0
je 0x4c7e2e
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x110], edx
cmp dword [ebp - 0x110], 0xc0
jb 0x4c7e3a
test byte [ebp - 0x110], 0x20
jne 0x4c7ceb
mov eax, dword [edi]
mov ecx, dword [ebp - 0x110]
and ecx, 0x1f
xor edx, edx
mov dl, byte [eax + 1]
shl ecx, 6
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x110], ecx
inc dword [edi]
jmp 0x4c7e3a
test byte [ebp - 0x110], 0x10
jne 0x4c7d29
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x110]
and ecx, 0xf
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 6
shl ecx, 0xc
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x110], ecx
add dword [edi], 2
jmp 0x4c7e3a
test byte [ebp - 0x110], 8
jne 0x4c7d76
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x110]
and ecx, 7
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 0xc
shl ecx, 0x12
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 6
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x110], ecx
add dword [edi], 3
jmp 0x4c7e3a
test byte [ebp - 0x110], 4
jne 0x4c7dcf
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x110]
and ecx, 3
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 0x12
shl ecx, 0x18
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 0xc
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 6
or ecx, edx
xor edx, edx
mov dl, byte [eax + 4]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x110], ecx
add dword [edi], 4
jmp 0x4c7e3a
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x110]
and ecx, 1
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 0x18
shl ecx, 0x1e
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 0x12
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 0xc
or ecx, edx
xor edx, edx
mov dl, byte [eax + 4]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 6
or ecx, edx
xor edx, edx
mov dl, byte [eax + 5]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x110], ecx
add dword [edi], 5
jmp 0x4c7e3a
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x64], 0
jne 0x4c7ea4
cmp dword [ebp - 0x110], 0x5c
jne 0x4c7ea4
push 1
mov edx, dword [ebp - 0x4c]
push edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x38]
lea ecx, [ebp - 0x110]
push eax
mov edx, dword [ebp + 0x14]
push edx
push ecx
push edi
call fcn.004c4750
add esp, 0x18
mov dword [ebp - 0x114], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x4cadca
cmp dword [ebp - 0x114], 0
je 0x4c7ea4
cmp dword [ebp - 0x114], 5
jne 0x4c7e9a
mov dword [ebp - 0x110], 8
jmp 0x4c7ea4
mov edx, dword [ebp - 0xf4]
mov dword [edi], edx
jmp 0x4c7f19
cmp esi, dword [ebp - 0x110]
jbe 0x4c7eba
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 8
jmp 0x4cadca
cmp esi, dword [ebp - 0x110]
je 0x4c7f19
mov dword [ebp - 0xb8], 2
cmp dword [ebp - 0x110], 0xd
je 0x4c7ede
cmp dword [ebp - 0x110], 0xa
jne 0x4c7ee8
mov eax, dword [ebp + 0x30]
or dword [eax + 0x54], 0x800
mov edx, dword [ebp - 0x110]
push edx
push esi
mov ecx, dword [ebp + 0x30]
lea edx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x1f8]
mov eax, dword [ebp - 0x4c]
push eax
push edx
push ecx
call fcn.004c6bc4
add esp, 0x18
add dword [ebp - 0xb4], eax
jmp 0x4c800f
cmp dword [ebp - 0xb8], 2
jge 0x4c7f28
inc dword [ebp - 0xb8]
cmp dword [ebp - 0xb8], 1
jne 0x4c7fe9
mov eax, dword [edi]
cmp byte [eax + 1], 0x5d
jne 0x4c7fe9
inc dword [edi]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x9c], 0
je 0x4c7fa9
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4c7f65
mov dword [ebp - 0x28], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], edx
test byte [ebp - 0x4c], 1
je 0x4c7f7b
mov cl, 0x20
jmp 0x4c7f7d
mov cl, 0x1f
mov byte [ebx], cl
inc ebx
cmp dword [ebp - 0x84], 0
je 0x4c7f9f
cmp esi, 0x7f
jbe 0x4c7f9f
push ebx
push esi
call fcn.004d7d6c
add esp, 8
add ebx, eax
jmp 0x4cadc3
mov eax, esi
mov byte [ebx], al
inc ebx
jmp 0x4cadc3
cmp dword [ebp - 0x84], 0
je 0x4c7fd2
cmp esi, 0x7f
jbe 0x4c7fd2
lea edx, [ebp - 0xf0]
push edx
push esi
call fcn.004d7d6c
add esp, 8
mov dword [ebp - 0xe0], eax
jmp 0x4cacbc
mov eax, esi
mov byte [ebp - 0xf0], al
mov dword [ebp - 0xe0], 1
jmp 0x4cacbc
push esi
push esi
mov edx, dword [ebp + 0x30]
lea eax, [ebp - 0x90]
push edx
lea edx, [ebp - 0x1f8]
mov ecx, dword [ebp - 0x4c]
push ecx
push eax
push edx
call fcn.004c6bc4
add esp, 0x18
add dword [ebp - 0xb4], eax
inc dword [edi]
mov ecx, dword [edi]
movzx esi, byte [ecx]
test esi, esi
jne 0x4c8035
cmp dword [ebp - 0x74], 0
je 0x4c8048
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dword [edi], eax
mov dword [ebp - 0x74], edx
inc dword [edi]
mov ecx, dword [edi]
movzx esi, byte [ecx]
test esi, esi
je 0x4c8048
cmp esi, 0x5d
jne 0x4c73e4
cmp dword [ebp - 0x64], 0
jne 0x4c73e4
test esi, esi
jne 0x4c805a
mov eax, dword [ebp + 0x14]
mov dword [eax], 6
jmp 0x4cadca
mov edx, dword [ebp - 0x90]
cmp edx, dword [ebp - 0x98]
jbe 0x4c8072
mov dword [ebp - 0x94], 1
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4c807f
mov dword [ebp - 0x28], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x94], 0
je 0x4c8145
cmp dword [ebp - 0xa0], 0
je 0x4c80b7
test byte [ebp - 0x49], 0x20
je 0x4c8145
mov eax, dword [ebp - 0x90]
mov byte [eax], 0
inc dword [ebp - 0x90]
mov byte [ebx], 0x6c
inc ebx
add ebx, 2
cmp dword [ebp - 0x9c], 0
je 0x4c80da
mov dl, 1
jmp 0x4c80dc
xor edx, edx
mov byte [ebx], dl
cmp dword [ebp - 0xb4], 0
jle 0x4c811e
or byte [ebx], 2
inc ebx
mov eax, dword [ebp - 0x90]
sub eax, ebx
lea ecx, [ebx + 0x20]
push eax
push ebx
push ecx
call fcn.004e084c
add esp, 0xc
lea eax, [ebp - 0x1f8]
push 0x20
push eax
push ebx
call fcn.004e0828
add esp, 0xc
mov ebx, dword [ebp - 0x90]
add ebx, 0x20
jmp 0x4c8124
mov ebx, dword [ebp - 0x90]
mov eax, ebx
mov edx, dword [ebp - 0x78]
sub eax, dword [ebp - 0x78]
mov ecx, ebx
sar eax, 8
mov byte [edx + 1], al
sub ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
and cl, 0xff
mov byte [eax + 2], cl
jmp 0x4cadc3
mov edx, dword [ebp - 0x9c]
cmp edx, dword [ebp - 0xa0]
jne 0x4c8157
mov cl, 0x6a
jmp 0x4c8159
mov cl, 0x6b
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x34], 0
jne 0x4c819f
cmp dword [ebp - 0x9c], 0
je 0x4c818d
xor esi, esi
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x1d4]
not byte [edx]
inc esi
inc dword [ebp - 0x1d4]
cmp esi, 0x20
jb 0x4c8179
push 0x20
lea ecx, [ebp - 0x1f8]
push ecx
push ebx
call fcn.004e0828
add esp, 0xc
add ebx, 0x20
jmp 0x4cadc3
cmp dword [ebp - 0xa8], 0
je 0x4cac69
mov eax, dword [ebp + 0x14]
push eax
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 0xc]
push ecx
mov eax, dword [edi]
inc eax
push eax
call fcn.004c4ec8
add esp, 0x10
mov dword [edi], eax
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
jne 0x4cadca
jmp 0x4c8206
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4c8206
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4c8206
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x78], 0
jne 0x4c821a
mov edx, dword [ebp + 0x14]
mov dword [edx], 9
jmp 0x4cadca
cmp dword [ebp - 0xc], 0
jne 0x4c8238
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jne 0x4c8244
xor edx, edx
jmp 0x4c8249
mov edx, 2
mov dword [ebp - 0x44], edx
xor eax, eax
mov dword [ebp - 8], eax
xor ecx, ecx
mov dword [ebp - 0xa4], ecx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x60], eax
mov edx, dword [edi]
cmp byte [edx + 1], 0x2b
jne 0x4c827a
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xa4], 1
inc dword [edi]
jmp 0x4c8292
mov eax, dword [edi]
cmp byte [eax + 1], 0x3f
jne 0x4c828c
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 4], edx
inc dword [edi]
jmp 0x4c8292
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x6f
jne 0x4c835a
push 3
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x78]
add ecx, 3
push ecx
call fcn.004e084c
mov eax, dword [ebp - 0x78]
add esp, 0xc
add ebx, 6
mov byte [eax], 0x7b
mov edx, dword [ebp - 0x78]
mov byte [edx + 1], 0
mov ecx, dword [ebp - 0x78]
mov byte [ecx + 2], 6
mov eax, dword [ebp - 0x78]
mov byte [eax + 6], 0x72
mov edx, dword [ebp - 0x78]
mov byte [edx + 7], 0
mov ecx, dword [ebp - 0x78]
mov byte [ecx + 8], 6
mov dword [ebp - 0x54], 9
cmp dword [ebp + 0x34], 0
jne 0x4c835a
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x24]
mov eax, dword [ecx + 0x10]
add eax, 2
cmp edx, eax
jb 0x4c835a
mov edx, dword [ebp + 0x30]
xor eax, eax
mov ecx, dword [edx + 0x24]
mov edx, dword [ebp + 0x30]
mov al, byte [ecx - 2]
mov ecx, dword [edx + 0x24]
xor edx, edx
shl eax, 8
mov dl, byte [ecx - 1]
or eax, edx
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x78]
inc eax
sub eax, dword [ecx + 0x14]
cmp eax, dword [ebp - 0x118]
jne 0x4c835a
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x118]
add eax, 3
sar eax, 8
mov ecx, dword [edx + 0x24]
mov byte [ecx - 2], al
mov edx, dword [ebp + 0x30]
mov al, byte [ebp - 0x118]
add al, 3
and al, 0xff
mov ecx, dword [edx + 0x24]
mov byte [ecx - 1], al
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x1d
je 0x4c837e
mov edx, dword [ebp - 0x78]
cmp byte [edx], 0x1e
je 0x4c837e
mov ecx, dword [ebp - 0x78]
cmp byte [ecx], 0x1f
je 0x4c837e
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x20
jne 0x4c8491
mov edx, dword [ebp - 0x78]
mov cl, byte [edx]
sub cl, 0x1d
je 0x4c8394
dec cl
je 0x4c839b
dec cl
je 0x4c83a4
dec cl
je 0x4c83ad
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x4c83b4
mov dword [ebp - 8], 0xd
jmp 0x4c83b4
mov dword [ebp - 8], 0x1a
jmp 0x4c83b4
mov dword [ebp - 8], 0x27
cmp dword [ebp - 0x84], 0
je 0x4c8420
xor edx, edx
mov dl, byte [ebx - 1]
and edx, 0xc0
cmp edx, 0x80
jne 0x4c8420
lea ecx, [ebx - 1]
mov dword [ebp - 0x11c], ecx
jmp 0x4c83e1
dec dword [ebp - 0x11c]
mov eax, dword [ebp - 0x11c]
xor edx, edx
mov dl, byte [eax]
and edx, 0xc0
cmp edx, 0x80
je 0x4c83db
mov esi, ebx
sub esi, dword [ebp - 0x11c]
push esi
mov eax, dword [ebp - 0x11c]
push eax
lea edx, [ebp - 0x8c]
push edx
call fcn.004e0828
add esp, 0xc
or esi, 0x10000000
jmp 0x4c8441
movzx esi, byte [ebx - 1]
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x1e
ja 0x4c8441
cmp dword [ebp - 0xc], 1
jle 0x4c8441
mov dword [ebp - 0x24], esi
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x58]
or ecx, dword [ebp - 0x40]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0xa4], 0
jne 0x4c84eb
cmp dword [ebp - 0x10], 0
jge 0x4c84eb
mov eax, dword [ebp + 0x30]
push eax
mov edx, dword [ebp - 0x4c]
push edx
mov ecx, dword [edi]
inc ecx
push ecx
mov eax, dword [ebp - 0x84]
push eax
mov edx, dword [ebp - 0x78]
push edx
call fcn.004c6024
add esp, 0x14
test eax, eax
je 0x4c84eb
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xa4], 1
jmp 0x4c84eb
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x17
jae 0x4c8726
mov dword [ebp - 8], 0x34
mov edx, dword [ebp - 0x78]
cmp dword [ebp - 0xa4], 0
movzx esi, byte [edx]
jne 0x4c84eb
cmp dword [ebp - 0x10], 0
jge 0x4c84eb
mov eax, dword [ebp + 0x30]
push eax
mov edx, dword [ebp - 0x4c]
push edx
mov ecx, dword [edi]
inc ecx
push ecx
mov eax, dword [ebp - 0x84]
push eax
mov edx, dword [ebp - 0x78]
push edx
call fcn.004c6024
add esp, 0x14
test eax, eax
je 0x4c84eb
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xa4], 1
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x10
je 0x4c84fb
mov edx, dword [ebp - 0x78]
cmp byte [edx], 0xf
jne 0x4c8519
mov ecx, dword [ebp - 0x78]
xor eax, eax
mov al, byte [ecx + 1]
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x78]
xor ecx, ecx
mov cl, byte [edx + 2]
mov dword [ebp - 0x128], ecx
jmp 0x4c8528
or eax, 0xffffffff
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], ebx
cmp dword [ebp - 0x10], 0
mov ebx, dword [ebp - 0x78]
je 0x4c9279
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x4c8590
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c855b
mov dl, byte [ebp - 4]
add dl, 0x21
mov byte [ebx], dl
inc ebx
jmp 0x4c86eb
cmp dword [ebp - 0x10], 1
jne 0x4c856f
mov cl, byte [ebp - 4]
add cl, 0x25
mov byte [ebx], cl
inc ebx
jmp 0x4c86eb
mov al, byte [ebp - 4]
add al, 0x27
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x4c86eb
cmp dword [ebp - 0xc], 1
jne 0x4c85de
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c85a9
mov al, byte [ebp - 4]
add al, 0x23
mov byte [ebx], al
inc ebx
jmp 0x4c86eb
cmp dword [ebp - 0x10], 1
mov ebx, dword [ebp - 0x120]
je 0x4c9279
mov al, byte [ebp - 4]
add al, 0x27
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0x10]
dec edx
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0x10]
add cl, 0xff
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x4c86eb
mov al, byte [ebp - 8]
add al, 0x29
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
cmp dword [ebp - 0x10], 0
jge 0x4c865d
cmp dword [ebp - 0x84], 0
je 0x4c8630
test esi, 0x10000000
je 0x4c8630
mov eax, esi
lea edx, [ebp - 0x8c]
and eax, 7
push eax
push edx
push ebx
call fcn.004e0828
add esp, 0xc
mov ecx, esi
and ecx, 7
add ebx, ecx
jmp 0x4c8650
mov eax, esi
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x124], 0
jl 0x4c8650
mov dl, byte [ebp - 0x124]
mov byte [ebx], dl
inc ebx
mov cl, byte [ebp - 0x128]
mov byte [ebx], cl
inc ebx
mov al, byte [ebp - 4]
add al, 0x21
mov byte [ebx], al
inc ebx
jmp 0x4c86eb
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0xc]
je 0x4c86eb
cmp dword [ebp - 0x84], 0
je 0x4c8699
test esi, 0x10000000
je 0x4c8699
mov ecx, esi
lea eax, [ebp - 0x8c]
and ecx, 7
push ecx
push eax
push ebx
call fcn.004e0828
add esp, 0xc
mov edx, esi
and edx, 7
add ebx, edx
jmp 0x4c869e
mov ecx, esi
mov byte [ebx], cl
inc ebx
cmp dword [ebp - 0x124], 0
jl 0x4c86b9
mov al, byte [ebp - 0x124]
mov byte [ebx], al
inc ebx
mov dl, byte [ebp - 0x128]
mov byte [ebx], dl
inc ebx
mov ecx, dword [ebp - 0xc]
sub dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 1
jne 0x4c86cf
mov al, byte [ebp - 4]
add al, 0x25
mov byte [ebx], al
inc ebx
jmp 0x4c86eb
mov dl, byte [ebp - 4]
add dl, 0x27
mov byte [ebx], dl
inc ebx
mov ecx, dword [ebp - 0x10]
sar ecx, 8
mov byte [ebx], cl
mov al, byte [ebp - 0x10]
and al, 0xff
mov byte [ebx + 1], al
add ebx, 2
cmp dword [ebp - 0x84], 0
je 0x4c871c
test esi, 0x10000000
je 0x4c871c
mov edx, esi
lea ecx, [ebp - 0x8c]
and edx, 7
push edx
push ecx
push ebx
call fcn.004e0828
add esp, 0xc
and esi, 7
add ebx, esi
jmp 0x4c8fc2
mov eax, esi
mov byte [ebx], al
inc ebx
jmp 0x4c8fc2
mov edx, dword [ebp - 0x78]
cmp byte [edx], 0x6a
je 0x4c8752
mov ecx, dword [ebp - 0x78]
cmp byte [ecx], 0x6b
je 0x4c8752
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x6c
je 0x4c8752
mov edx, dword [ebp - 0x78]
cmp byte [edx], 0x6d
je 0x4c8752
mov ecx, dword [ebp - 0x78]
cmp byte [ecx], 0x6e
jne 0x4c87ed
cmp dword [ebp - 0x10], 0
jne 0x4c8760
mov ebx, dword [ebp - 0x78]
jmp 0x4c9279
cmp dword [ebp - 0xc], 0
jne 0x4c8779
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c8779
mov al, byte [ebp - 4]
add al, 0x62
mov byte [ebx], al
inc ebx
jmp 0x4c8fc2
cmp dword [ebp - 0xc], 1
jne 0x4c8793
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c8793
mov dl, byte [ebp - 4]
add dl, 0x64
mov byte [ebx], dl
inc ebx
jmp 0x4c8fc2
cmp dword [ebp - 0xc], 0
jne 0x4c87ad
cmp dword [ebp - 0x10], 1
jne 0x4c87ad
mov cl, byte [ebp - 4]
add cl, 0x66
mov byte [ebx], cl
inc ebx
jmp 0x4c8fc2
mov al, byte [ebp - 4]
add al, 0x68
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c87d4
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x4c8fc2
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x77
jb 0x4c8fa8
mov edx, dword [ebp - 0x78]
cmp byte [edx], 0x81
ja 0x4c8fa8
mov esi, ebx
xor eax, eax
sub esi, dword [ebp - 0x78]
xor edx, edx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], edx
mov ecx, dword [ebp - 0x78]
cmp byte [ecx], 0x81
jne 0x4c882f
mov eax, dword [ebp - 0x78]
cmp byte [eax + 3], 0x8b
je 0x4c9279
mov edx, dword [ebp - 0x78]
cmp byte [edx], 0x7b
jae 0x4c8854
cmp dword [ebp - 0xc], 0
jg 0x4c9279
cmp dword [ebp - 0x10], 0
jl 0x4c884d
cmp dword [ebp - 0x10], 1
jle 0x4c8854
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0xc], 0
jne 0x4c895f
cmp dword [ebp - 0x10], 1
jg 0x4c88c4
mov byte [ebx], 0
mov ecx, dword [ebp - 0x80]
push ecx
mov eax, dword [ebp + 0x30]
push eax
mov edx, dword [ebp - 0x84]
push edx
push 1
mov ecx, dword [ebp - 0x78]
push ecx
call fcn.004c5f18
add esp, 0x14
push esi
mov eax, dword [ebp - 0x78]
push eax
mov edx, dword [ebp - 0x78]
inc edx
push edx
call fcn.004e084c
add esp, 0xc
inc ebx
cmp dword [ebp - 0x10], 0
jne 0x4c88a8
mov ecx, dword [ebp - 0x78]
mov byte [ecx], 0x9b
jmp 0x4c9279
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 0x78]
mov dl, byte [ebp - 4]
add dl, 0x8c
mov byte [ecx], dl
inc dword [ebp - 0x78]
jmp 0x4c8957
mov byte [ebx], 0
mov eax, dword [ebp - 0x80]
push eax
mov edx, dword [ebp + 0x30]
push edx
mov ecx, dword [ebp - 0x84]
push ecx
push 4
mov eax, dword [ebp - 0x78]
push eax
call fcn.004c5f18
add esp, 0x14
push esi
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x78]
add ecx, 4
push ecx
call fcn.004e084c
mov edx, dword [ebp - 0x78]
mov al, byte [ebp - 4]
add al, 0x8c
add esp, 0xc
mov byte [edx], al
add ebx, 4
inc dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
mov byte [ecx], 0x7d
inc dword [ebp - 0x78]
cmp dword [ebp - 0x130], 0
jne 0x4c891e
xor eax, eax
jmp 0x4c8927
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x130]
mov dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x78]
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [ebp - 0x78]
mov dl, byte [ebp - 0x138]
and dl, 0xff
mov byte [ecx + 1], dl
add dword [ebp - 0x78], 2
dec dword [ebp - 0x10]
jmp 0x4c8b14
cmp dword [ebp - 0xc], 1
jle 0x4c8b08
cmp dword [ebp + 0x34], 0
je 0x4c89cc
mov eax, dword [ebp - 0xc]
dec eax
imul dword [ebp - 0x54]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x54]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc]
dec eax
cdq
call fcn.004e4e1c
cmp edx, 0
jne 0x4c899a
cmp eax, 0x7fffffff
ja 0x4c89ae
jmp 0x4c899c
jg 0x4c89ae
mov ecx, dword [ebp + 0x34]
mov eax, 0x7fffffeb
sub eax, dword [ecx]
cmp eax, dword [ebp - 0x13c]
jge 0x4c89bc
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x14
jmp 0x4cadca
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp - 0x13c]
add dword [ecx], eax
jmp 0x4c8b08
cmp dword [ebp - 0x68], 0
je 0x4c89e4
cmp dword [ebp - 0x2c], 0
jge 0x4c89e4
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x12c], 1
mov eax, dword [ebp - 0x12c]
cmp eax, dword [ebp - 0xc]
jge 0x4c8b08
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x24]
mov dword [ebp - 0x140], ecx
push esi
mov eax, dword [ebp - 0x78]
push eax
push ebx
call fcn.004e0828
add esp, 0xc
jmp 0x4c8a76
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x80]
sub ecx, dword [edx + 0x10]
mov dword [ebp - 0x144], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x140]
sub edx, dword [eax + 0x10]
mov dword [ebp - 0x148], edx
mov ecx, dword [ebp + 0x30]
push ecx
call fcn.004c4650
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x4cadca
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x10]
add eax, dword [ebp - 0x144]
mov dword [ebp - 0x80], eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x10]
add ecx, dword [ebp - 0x148]
mov dword [ebp - 0x140], ecx
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x140]
add edx, dword [ecx + 0x34]
sub eax, dword [ebp - 0x80]
mov ecx, dword [ebp + 0x30]
add edx, 0xffffff9c
sub edx, eax
cmp edx, dword [ecx + 0x24]
jb 0x4c8a19
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x140]
jae 0x4c8ae8
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
or edx, ecx
mov ecx, dword [ebp + 0x30]
add edx, esi
sar edx, 8
mov ecx, dword [ecx + 0x24]
mov byte [ecx], dl
mov ecx, esi
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
add dl, cl
mov ecx, dword [ebp + 0x30]
and dl, 0xff
mov ecx, dword [ecx + 0x24]
mov byte [ecx + 1], dl
mov edx, dword [ebp + 0x30]
add dword [edx + 0x24], 2
add eax, 2
cmp eax, dword [ebp - 0x140]
jb 0x4c8aa3
mov eax, dword [ebp - 0x140]
add ebx, esi
mov dword [ebp - 0x80], eax
inc dword [ebp - 0x12c]
mov eax, dword [ebp - 0x12c]
cmp eax, dword [ebp - 0xc]
jl 0x4c89fd
cmp dword [ebp - 0x10], 0
jle 0x4c8b14
mov edx, dword [ebp - 0xc]
sub dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0
jl 0x4c8da6
cmp dword [ebp + 0x34], 0
je 0x4c8b8f
cmp dword [ebp - 0x10], 0
jle 0x4c8b8f
mov ecx, dword [ebp - 0x54]
add ecx, 7
imul ecx, dword [ebp - 0x10]
add ecx, 0xfffffffa
mov dword [ebp - 0x14c], ecx
mov eax, dword [ebp - 0x54]
add eax, 7
cdq
push edx
push eax
mov eax, dword [ebp - 0x10]
cdq
call fcn.004e4e1c
cmp edx, 0
jne 0x4c8b5d
cmp eax, 0x7fffffff
ja 0x4c8b71
jmp 0x4c8b5f
jg 0x4c8b71
mov ecx, dword [ebp + 0x34]
mov eax, 0x7fffffeb
sub eax, dword [ecx]
cmp eax, dword [ebp - 0x14c]
jge 0x4c8b7f
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x14
jmp 0x4cadca
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp - 0x14c]
add dword [ecx], eax
jmp 0x4c8d28
mov edx, dword [ebp - 0x10]
dec edx
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 0
jl 0x4c8d28
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x150], eax
mov dl, byte [ebp - 4]
add dl, 0x8c
mov byte [ebx], dl
inc ebx
cmp dword [ebp - 0x12c], 0
je 0x4c8c03
mov byte [ebx], 0x7d
inc ebx
cmp dword [ebp - 0x130], 0
jne 0x4c8bd5
xor ecx, ecx
jmp 0x4c8bdd
mov ecx, ebx
sub ecx, dword [ebp - 0x130]
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x130], ebx
mov eax, dword [ebp - 0x154]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x154]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
push esi
mov eax, dword [ebp - 0x78]
push eax
push ebx
call fcn.004e0828
add esp, 0xc
jmp 0x4c8c70
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x80]
sub ecx, dword [edx + 0x10]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x150]
sub edx, dword [eax + 0x10]
mov dword [ebp - 0x15c], edx
mov ecx, dword [ebp + 0x30]
push ecx
call fcn.004c4650
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x4cadca
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x10]
add eax, dword [ebp - 0x158]
mov dword [ebp - 0x80], eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x10]
add ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x150]
add edx, dword [ecx + 0x34]
sub eax, dword [ebp - 0x80]
mov ecx, dword [ebp + 0x30]
add edx, 0xffffff9c
sub edx, eax
cmp edx, dword [ecx + 0x24]
jb 0x4c8c13
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x150]
jae 0x4c8d0a
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
or edx, ecx
add edx, esi
cmp dword [ebp - 0x12c], 0
je 0x4c8cbd
mov ecx, 4
jmp 0x4c8cc2
mov ecx, 1
add edx, ecx
mov ecx, dword [ebp + 0x30]
sar edx, 8
mov ecx, dword [ecx + 0x24]
mov byte [ecx], dl
mov ecx, esi
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
add dl, cl
cmp dword [ebp - 0x12c], 0
je 0x4c8ce8
mov cl, 4
jmp 0x4c8cea
mov cl, 1
add dl, cl
mov ecx, dword [ebp + 0x30]
and dl, 0xff
mov ecx, dword [ecx + 0x24]
mov byte [ecx + 1], dl
mov edx, dword [ebp + 0x30]
add dword [edx + 0x24], 2
add eax, 2
cmp eax, dword [ebp - 0x150]
jb 0x4c8c9d
mov eax, dword [ebp - 0x150]
add ebx, esi
mov dword [ebp - 0x80], eax
dec dword [ebp - 0x12c]
cmp dword [ebp - 0x12c], 0
jge 0x4c8ba6
cmp dword [ebp - 0x130], 0
je 0x4c8fc2
mov eax, ebx
sub eax, dword [ebp - 0x130]
inc eax
mov edx, ebx
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx esi, byte [edx + 2]
or ecx, esi
mov dword [ebp - 0x160], ecx
cmp dword [ebp - 0x160], 0
jne 0x4c8d63
xor ecx, ecx
jmp 0x4c8d6f
mov ecx, dword [ebp - 0x130]
sub ecx, dword [ebp - 0x160]
mov dword [ebp - 0x130], ecx
mov byte [ebx], 0x72
inc ebx
mov ecx, eax
sar ecx, 8
mov byte [ebx], cl
mov ecx, eax
and cl, 0xff
mov byte [ebx + 1], cl
mov ecx, eax
sar ecx, 8
add ebx, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
cmp dword [ebp - 0x130], 0
jne 0x4c8d35
jmp 0x4c8fc2
lea eax, [ebx - 3]
xor ecx, ecx
mov dword [ebp - 0x164], eax
xor eax, eax
mov edx, dword [ebp - 0x164]
mov al, byte [edx + 1]
mov edx, dword [ebp - 0x164]
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
mov edx, dword [ebp - 0x164]
sub edx, eax
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x168]
cmp byte [eax], 0x7b
je 0x4c8dee
mov ecx, dword [ebp - 0x168]
cmp byte [ecx], 0x7c
jne 0x4c8e00
cmp dword [ebp - 0xa4], 0
je 0x4c8e00
mov eax, dword [ebp - 0x168]
mov byte [eax], 0x7d
mov edx, dword [ebp - 0x168]
cmp byte [edx], 0x7b
je 0x4c8e16
mov ecx, dword [ebp - 0x168]
cmp byte [ecx], 0x7c
jne 0x4c8e28
mov edx, dword [ebp - 0x164]
mov al, byte [ebp - 4]
add al, 0x73
mov byte [edx], al
jmp 0x4c8fc2
cmp dword [ebp + 0x34], 0
jne 0x4c8e96
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x16c], ecx
mov eax, dword [ebp + 0x30]
push eax
mov edx, dword [ebp - 0x84]
push edx
mov ecx, dword [ebp - 0x164]
push ecx
mov eax, dword [ebp - 0x16c]
push eax
call fcn.004c59dc
add esp, 0x10
test eax, eax
je 0x4c8e6a
mov edx, dword [ebp - 0x168]
add byte [edx], 5
jmp 0x4c8e96
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x16c]
xor eax, eax
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x16c]
cmp byte [eax], 0x71
je 0x4c8e3a
cmp dword [ebp - 0xa4], 0
je 0x4c8f98
mov edx, dword [ebp - 0x168]
cmp byte [edx], 0x81
je 0x4c8ebd
mov ecx, dword [ebp - 0x168]
cmp byte [ecx], 0x86
jne 0x4c8f65
mov eax, ebx
sub eax, dword [ebp - 0x168]
mov dword [ebp - 0x170], eax
mov byte [ebx], 0
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [ebp - 0x84]
push eax
push 3
mov edx, dword [ebp - 0x168]
push edx
call fcn.004c5f18
add esp, 0x14
mov ecx, dword [ebp - 0x170]
push ecx
mov eax, dword [ebp - 0x168]
push eax
mov edx, dword [ebp - 0x168]
add edx, 3
push edx
call fcn.004e084c
add dword [ebp - 0x170], 3
mov ecx, dword [ebp - 0x168]
add ebx, 3
add esp, 0xc
mov byte [ecx], 0x7e
mov byte [ebx], 0x75
inc ebx
mov eax, dword [ebp - 0x170]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x170]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
mov ecx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x168]
sar ecx, 8
mov byte [eax + 1], cl
mov ecx, dword [ebp - 0x168]
mov dl, byte [ebp - 0x170]
and dl, 0xff
mov byte [ecx + 2], dl
jmp 0x4c8f76
mov eax, dword [ebp - 0x168]
inc byte [eax]
mov edx, dword [ebp - 0x164]
mov byte [edx], 0x75
cmp dword [ebp - 0x134], 0
je 0x4c8f88
mov ecx, dword [ebp - 0x134]
mov byte [ecx], 0x8e
cmp dword [ebp - 0xc], 2
jge 0x4c8fc2
xor eax, eax
mov dword [ebp - 0xa4], eax
jmp 0x4c8fc2
mov ecx, dword [ebp - 0x164]
mov dl, byte [ebp - 4]
add dl, 0x73
mov byte [ecx], dl
jmp 0x4c8fc2
mov eax, dword [ebp - 0x78]
cmp byte [eax], 0x97
je 0x4c9279
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xb
jmp 0x4cadca
cmp dword [ebp - 0xa4], 0
je 0x4c9279
mov ecx, dword [ebp - 0x60]
cmp byte [ecx], 0x5d
jne 0x4c9008
mov eax, dword [ebp - 0x60]
cmp byte [eax + 3], 0x10
je 0x4c8fe9
mov edx, dword [ebp - 0x60]
cmp byte [edx + 3], 0xf
jne 0x4c8ff0
mov ecx, 2
jmp 0x4c8ff2
xor ecx, ecx
mov eax, dword [ebp - 0x60]
xor edx, edx
mov dl, byte [eax]
xor eax, eax
mov al, byte [edx + 0x5b3424]
add ecx, eax
add dword [ebp - 0x60], ecx
jmp 0x4c9052
mov edx, dword [ebp - 0x60]
cmp byte [edx], 0x29
je 0x4c9018
mov ecx, dword [ebp - 0x60]
cmp byte [ecx], 0x43
jne 0x4c9052
mov eax, dword [ebp - 0x60]
xor edx, edx
mov dl, byte [eax]
xor ecx, ecx
mov cl, byte [edx + 0x5b3424]
add dword [ebp - 0x60], ecx
cmp dword [ebp - 0x84], 0
je 0x4c9052
mov eax, dword [ebp - 0x60]
cmp byte [eax - 1], 0xc0
jb 0x4c9052
mov edx, dword [ebp - 0x60]
xor ecx, ecx
mov cl, byte [edx - 1]
and ecx, 0x3f
xor eax, eax
mov al, byte [ecx + 0x5b34c0]
add dword [ebp - 0x60], eax
mov edx, ebx
sub edx, dword [ebp - 0x60]
mov dword [ebp - 0x174], edx
cmp dword [ebp - 0x174], 0
jle 0x4c9279
mov ecx, dword [ebp - 0x60]
xor eax, eax
mov al, byte [ecx]
add eax, 0xffffffdf
cmp eax, 0x3a
ja case.0x4c9083.33
mov al, byte [eax + 0x4c908a]
jmp dword [eax*4 + 0x4c90c5]
mov edx, dword [ebp - 0x60]
mov byte [edx], 0x2a
jmp 0x4c9279
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x2b
jmp 0x4c9279
mov eax, dword [ebp - 0x60]
mov byte [eax], 0x2c
jmp 0x4c9279
mov edx, dword [ebp - 0x60]
mov byte [edx], 0x2d
jmp 0x4c9279
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x37
jmp 0x4c9279
mov eax, dword [ebp - 0x60]
mov byte [eax], 0x38
jmp 0x4c9279
mov edx, dword [ebp - 0x60]
mov byte [edx], 0x39
jmp 0x4c9279
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x3a
jmp 0x4c9279
mov eax, dword [ebp - 0x60]
mov byte [eax], 0x44
jmp 0x4c9279
mov edx, dword [ebp - 0x60]
mov byte [edx], 0x45
jmp 0x4c9279
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x46
jmp 0x4c9279
mov eax, dword [ebp - 0x60]
mov byte [eax], 0x47
jmp 0x4c9279
mov edx, dword [ebp - 0x60]
mov byte [edx], 0x51
jmp 0x4c9279
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x52
jmp 0x4c9279
mov eax, dword [ebp - 0x60]
mov byte [eax], 0x53
jmp 0x4c9279
mov edx, dword [ebp - 0x60]
mov byte [edx], 0x54
jmp 0x4c9279
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x5e
jmp 0x4c9279
mov eax, dword [ebp - 0x60]
mov byte [eax], 0x5f
jmp 0x4c9279
mov edx, dword [ebp - 0x60]
mov byte [edx], 0x60
jmp 0x4c9279
mov ecx, dword [ebp - 0x60]
mov byte [ecx], 0x61
jmp 0x4c9279
mov byte [ebx], 0
mov eax, dword [ebp - 0x80]
push eax
mov edx, dword [ebp + 0x30]
push edx
mov ecx, dword [ebp - 0x84]
push ecx
push 3
mov eax, dword [ebp - 0x60]
push eax
call fcn.004c5f18
add esp, 0x14
mov edx, dword [ebp - 0x174]
push edx
mov ecx, dword [ebp - 0x60]
push ecx
mov eax, dword [ebp - 0x60]
add eax, 3
push eax
call fcn.004e084c
add dword [ebp - 0x174], 3
mov edx, dword [ebp - 0x60]
add ebx, 3
add esp, 0xc
mov byte [edx], 0x7b
mov byte [ebx], 0x72
inc ebx
mov ecx, dword [ebp - 0x174]
sar ecx, 8
mov byte [ebx], cl
mov al, byte [ebp - 0x174]
and al, 0xff
mov byte [ebx + 1], al
add ebx, 2
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x60]
sar edx, 8
mov byte [ecx + 1], dl
mov edx, dword [ebp - 0x60]
mov al, byte [ebp - 0x174]
and al, 0xff
mov byte [edx + 2], al
xor ecx, ecx
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x44]
or dword [eax + 0x58], edx
jmp 0x4cadc3
mov ecx, dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x14], 0x7f
mov edx, dword [ebp + 0x30]
xor eax, eax
mov ecx, dword [edx + 0x24]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0xb0], eax
inc dword [edi]
mov edx, dword [edi]
cmp byte [edx], 0x2a
jne 0x4c9565
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x3a
je 0x4c92e1
mov eax, dword [edi]
mov ecx, dword [ebp + 0x30]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ecx + 0xc]
test byte [eax + edx], 2
je 0x4c9565
xor edx, edx
xor eax, eax
mov dword [ebp - 0x17c], edx
xor edx, edx
mov dword [ebp - 0x180], 0x5b2188
mov ecx, dword [edi]
inc ecx
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x78], edx
inc dword [edi]
jmp 0x4c930f
inc dword [edi]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [edx + 0xc]
test byte [ecx + eax], 2
jne 0x4c930d
mov eax, dword [edi]
sub eax, dword [ebp - 0x184]
mov dword [ebp - 0x178], eax
mov edx, dword [edi]
cmp byte [edx], 0x3a
jne 0x4c937a
inc dword [edi]
mov ecx, dword [edi]
mov dword [ebp - 0x188], ecx
jmp 0x4c9344
inc dword [edi]
mov eax, dword [edi]
cmp byte [eax], 0
je 0x4c9352
mov edx, dword [edi]
cmp byte [edx], 0x29
jne 0x4c9342
mov ecx, dword [edi]
sub ecx, dword [ebp - 0x188]
mov dword [ebp - 0x17c], ecx
cmp dword [ebp - 0x17c], 0xff
jbe 0x4c937a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x4b
jmp 0x4cadca
mov edx, dword [edi]
cmp byte [edx], 0x29
je 0x4c938f
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3c
jmp 0x4cadca
xor esi, esi
jmp 0x4c953a
lea eax, [esi + esi*2]
mov edx, dword [eax*4 + 0x5b2070]
cmp edx, dword [ebp - 0x178]
jne 0x4c9528
mov ecx, dword [ebp - 0x178]
push ecx
mov eax, dword [ebp - 0x180]
push eax
mov edx, dword [ebp - 0x184]
push edx
call fcn.004e0a9c
add esp, 0xc
test eax, eax
jne 0x4c9528
lea ecx, [esi + esi*2]
cmp dword [ecx*4 + 0x5b2074], 0x98
jne 0x4c945d
cmp dword [ebp - 0x17c], 0
je 0x4c93f8
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3b
jmp 0x4cadca
mov edx, dword [ebp + 0x30]
mov dword [edx + 0x5c], 1
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4c942b
mov byte [ebx], 0x9a
inc ebx
movzx edx, word [eax + 4]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [eax + 4]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
mov eax, dword [eax]
test eax, eax
jne 0x4c940c
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x4c], 0
jle 0x4c9438
mov dl, 0x99
jmp 0x4c943a
mov dl, 0x98
mov byte [ebx], dl
xor eax, eax
mov al, dl
mov dword [ebp - 0x18c], eax
inc ebx
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4c94f6
mov dword [ebp - 0x28], 0xffffffff
jmp 0x4c94f6
cmp dword [ebp - 0x17c], 0
jne 0x4c949a
lea ecx, [esi + esi*2]
cmp dword [ecx*4 + 0x5b2074], 0
jge 0x4c9481
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x42
jmp 0x4cadca
lea edx, [esi + esi*2]
xor eax, eax
mov cl, byte [edx*4 + 0x5b2074]
mov byte [ebx], cl
inc ebx
mov al, cl
mov dword [ebp - 0x18c], eax
jmp 0x4c94f6
lea edx, [esi + esi*2]
cmp dword [edx*4 + 0x5b2078], 0
jge 0x4c94b5
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3b
jmp 0x4cadca
lea edx, [esi + esi*2]
mov cl, byte [edx*4 + 0x5b2078]
mov byte [ebx], cl
xor eax, eax
mov al, cl
mov dword [ebp - 0x18c], eax
inc ebx
mov dl, byte [ebp - 0x17c]
mov byte [ebx], dl
inc ebx
mov eax, dword [ebp - 0x17c]
push eax
mov edx, dword [ebp - 0x188]
push edx
push ebx
call fcn.004e0828
add esp, 0xc
add ebx, dword [ebp - 0x17c]
mov byte [ebx], 0
inc ebx
mov ecx, dword [ebp - 0x18c]
add ecx, 0xffffff70
sub ecx, 4
jb 0x4c951a
sub ecx, 2
jb 0x4c950e
jmp 0x4c9546
mov eax, dword [ebp + 0x30]
or dword [eax + 0x54], 0x1000
jmp 0x4c9546
mov edx, dword [ebp + 0x30]
mov dword [edx + 0x60], 1
jmp 0x4c9546
lea ecx, [esi + esi*2]
mov eax, dword [ecx*4 + 0x5b2070]
inc eax
add dword [ebp - 0x180], eax
inc esi
cmp esi, dword [0x5b20dc]
jl 0x4c9396
cmp esi, dword [0x5b20dc]
jl 0x4cadc3
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3c
jmp 0x4cadca
mov ecx, dword [edi]
cmp byte [ecx], 0x3f
jne 0x4ca5bd
inc dword [edi]
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3a
jg 0x4c95fa
je 0x4c9679
add edx, 0xffffffdf
cmp edx, 0x18
ja case.0x4c958f.34
jmp dword [edx*4 + 0x4c9596]
cmp edx, 0x43
jg 0x4c9621
je 0x4c9bcb
sub edx, 0x3c
je 0x4c9b56
dec edx
je 0x4c9b19
dec edx
je 0x4c9bbd
jmp case.0x4c958f.34
sub edx, 0x50
je 0x4c9c7b
sub edx, 2
je 0x4ca178
sub edx, 0x2a
je 0x4c966f
jmp case.0x4c958f.34
inc dword [edi]
jmp 0x4c9643
inc dword [edi]
mov ecx, dword [edi]
cmp byte [ecx], 0
je 0x4c9651
mov eax, dword [edi]
cmp byte [eax], 0x29
jne 0x4c9641
mov edx, dword [edi]
cmp byte [edx], 0
jne 0x4cadc3
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x12
jmp 0x4cadca
mov dword [ebp - 0xb0], 1
mov dword [ebp - 0x14], 0x7d
inc dword [edi]
jmp 0x4ca5f4
mov dword [ebp - 0x14], 0x81
mov eax, dword [edi]
cmp byte [eax + 1], 0x3f
jne 0x4c96ba
mov edx, dword [edi]
cmp byte [edx + 2], 0x3d
je 0x4ca5f4
mov ecx, dword [edi]
cmp byte [ecx + 2], 0x21
je 0x4ca5f4
mov eax, dword [edi]
cmp byte [eax + 2], 0x3c
je 0x4ca5f4
mov byte [ebx + 3], 0x87
mov dword [ebp - 0xc8], 3
mov dword [ebp - 0xc4], 0xffffffff
mov edx, dword [edi]
cmp byte [edx + 1], 0x52
jne 0x4c96f5
mov ecx, dword [edi]
cmp byte [ecx + 2], 0x26
jne 0x4c96f5
mov dword [ebp - 0xdc], 0xffffffff
add dword [edi], 2
mov byte [ebx + 3], 0x89
jmp 0x4c9747
mov eax, dword [edi]
cmp byte [eax + 1], 0x3c
jne 0x4c970b
mov dword [ebp - 0xdc], 0x3e
inc dword [edi]
jmp 0x4c9747
mov edx, dword [edi]
cmp byte [edx + 1], 0x27
jne 0x4c9721
mov dword [ebp - 0xdc], 0x27
inc dword [edi]
jmp 0x4c9747
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
mov eax, dword [edi]
cmp byte [eax + 1], 0x2d
je 0x4c9739
mov edx, dword [edi]
cmp byte [edx + 1], 0x2b
jne 0x4c9747
inc dword [edi]
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xc4], eax
mov edx, dword [edi]
mov eax, dword [ebp + 0x30]
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 0x10
jne 0x4c976a
inc dword [edi]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1c
jmp 0x4cadca
xor eax, eax
mov dword [ebp - 0xc0], eax
inc dword [edi]
mov edx, dword [edi]
mov dword [ebp - 0x1a4], edx
jmp 0x4c97b8
cmp dword [ebp - 0xc0], 0
jl 0x4c97b6
mov ecx, dword [edi]
cmp byte [ecx], 0x30
jb 0x4c97ad
mov eax, dword [edi]
cmp byte [eax], 0x39
ja 0x4c97ad
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi]
add edx, edx
xor eax, eax
mov al, byte [ecx]
sub eax, 0x30
lea edx, [edx + edx*4]
add edx, eax
jmp 0x4c97b0
or edx, 0xffffffff
mov dword [ebp - 0xc0], edx
inc dword [edi]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [edx + 0xc]
test byte [ecx + eax], 0x10
jne 0x4c977e
mov eax, dword [edi]
sub eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x19c], eax
cmp dword [ebp - 0xdc], 0
jle 0x4c97ef
mov dl, byte [ebp - 0xdc]
mov ecx, dword [edi]
inc dword [edi]
cmp dl, byte [ecx]
jne 0x4c97f8
mov eax, dword [edi]
inc dword [edi]
cmp byte [eax], 0x29
je 0x4c9808
dec dword [edi]
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1a
jmp 0x4cadca
cmp dword [ebp + 0x34], 0
jne 0x4ca5f4
cmp dword [ebp - 0xc4], 0
jle 0x4c98a2
cmp dword [ebp - 0xc0], 0
jg 0x4c9836
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3a
jmp 0x4cadca
cmp dword [ebp - 0xc4], 0x2d
jne 0x4c984e
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x38]
sub edx, dword [ebp - 0xc0]
inc edx
jmp 0x4c985a
mov ecx, dword [ebp + 0x30]
mov edx, dword [ecx + 0x38]
add edx, dword [ebp - 0xc0]
mov dword [ebp - 0xc0], edx
cmp dword [ebp - 0xc0], 0
jle 0x4c9877
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x3c]
cmp ecx, dword [ebp - 0xc0]
jge 0x4c9885
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x4cadca
mov edx, dword [ebp - 0xc0]
sar edx, 8
mov byte [ebx + 4], dl
mov cl, byte [ebp - 0xc0]
and cl, 0xff
mov byte [ebx + 5], cl
jmp 0x4ca5f4
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x1a8], edx
xor ecx, ecx
mov dword [ebp - 0x190], ecx
jmp 0x4c98ee
mov eax, dword [ebp - 0x19c]
push eax
mov edx, dword [ebp - 0x1a8]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1a4]
push ecx
call fcn.004e0a9c
add esp, 0xc
test eax, eax
je 0x4c98fc
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x30]
add dword [ebp - 0x1a8], edx
inc dword [ebp - 0x190]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [ebp - 0x190]
jg 0x4c98b8
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x2c]
cmp ecx, dword [ebp - 0x190]
jle 0x4c994a
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1a8]
xor edx, edx
mov dl, byte [eax]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 1]
or edx, eax
mov dword [ebp - 0xc0], edx
mov edx, dword [ebp - 0xc0]
sar edx, 8
mov byte [ebx + 4], dl
mov cl, byte [ebp - 0xc0]
and cl, 0xff
mov byte [ebx + 5], cl
inc byte [ebx + 3]
jmp 0x4ca5f4
mov eax, dword [ebp - 0x84]
push eax
test byte [ebp - 0x4c], 8
setne dl
and edx, 1
push edx
mov ecx, dword [ebp - 0x19c]
push ecx
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp + 0x30]
push edx
call fcn.004c5364
add esp, 0x14
mov dword [ebp - 0x190], eax
test eax, eax
jle 0x4c99a0
mov edx, dword [ebp - 0x190]
sar edx, 8
mov byte [ebx + 4], dl
mov cl, byte [ebp - 0x190]
and cl, 0xff
mov byte [ebx + 5], cl
inc byte [ebx + 3]
jmp 0x4ca5f4
cmp dword [ebp - 0xdc], 0
je 0x4c99bc
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x4cadca
mov edx, dword [ebp - 0x1a4]
cmp byte [edx], 0x52
jne 0x4c9a8b
xor ecx, ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0x190], 1
mov eax, dword [ebp - 0x190]
cmp eax, dword [ebp - 0x19c]
jge 0x4c9a58
mov edx, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x190]
cmp byte [edx + ecx], 0x30
jb 0x4c9a0f
mov eax, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x190]
cmp byte [eax + edx], 0x39
jbe 0x4c9a1d
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x4cadca
mov eax, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x190]
xor ecx, ecx
mov cl, byte [eax + edx]
mov eax, dword [ebp - 0xc0]
add eax, eax
lea eax, [eax + eax*4]
add ecx, eax
sub ecx, 0x30
mov dword [ebp - 0xc0], ecx
inc dword [ebp - 0x190]
mov edx, dword [ebp - 0x190]
cmp edx, dword [ebp - 0x19c]
jl 0x4c99eb
cmp dword [ebp - 0xc0], 0
jne 0x4c9a6b
mov dword [ebp - 0xc0], 0xffff
mov byte [ebx + 3], 0x89
mov ecx, dword [ebp - 0xc0]
sar ecx, 8
mov byte [ebx + 4], cl
mov al, byte [ebp - 0xc0]
and al, 0xff
mov byte [ebx + 5], al
jmp 0x4ca5f4
cmp dword [ebp - 0x19c], 6
jne 0x4c9ac1
push 6
push str.DEFINE
mov edx, dword [ebp - 0x1a4]
push edx
call fcn.004e0a9c
add esp, 0xc
test eax, eax
jne 0x4c9ac1
mov byte [ebx + 3], 0x8b
mov dword [ebp - 0xc8], 1
jmp 0x4ca5f4
cmp dword [ebp - 0xc0], 0
jle 0x4c9af5
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x3c]
cmp eax, dword [ebp - 0xc0]
jl 0x4c9af5
mov edx, dword [ebp - 0xc0]
sar edx, 8
mov byte [ebx + 4], dl
mov cl, byte [ebp - 0xc0]
and cl, 0xff
mov byte [ebx + 5], cl
jmp 0x4ca5f4
cmp dword [ebp - 0xc0], 0
jne 0x4c9b05
mov eax, 0x23
jmp 0x4c9b0a
mov eax, 0xf
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x4cadca
mov dword [ebp - 0x14], 0x77
mov ecx, dword [ebp + 0x30]
inc dword [ecx + 0x4c]
inc dword [edi]
jmp 0x4ca5f4
inc dword [edi]
mov eax, dword [edi]
cmp byte [eax], 0x29
jne 0x4c9b44
mov byte [ebx], 0x97
inc ebx
xor edx, edx
mov dword [ebp - 0x78], edx
jmp 0x4cadc3
mov dword [ebp - 0x14], 0x78
mov ecx, dword [ebp + 0x30]
inc dword [ecx + 0x4c]
jmp 0x4ca5f4
mov eax, dword [edi]
mov dl, byte [eax + 1]
sub dl, 0x21
je 0x4c9b7c
sub dl, 0x1c
je 0x4c9b67
jmp 0x4c9b91
mov dword [ebp - 0x14], 0x79
mov ecx, dword [ebp + 0x30]
inc dword [ecx + 0x4c]
add dword [edi], 2
jmp 0x4ca5f4
mov dword [ebp - 0x14], 0x7a
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x4c]
add dword [edi], 2
jmp 0x4ca5f4
mov edx, dword [edi]
mov eax, dword [ebp + 0x30]
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 0x10
jne case.0x4c958f.39
inc dword [edi]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x18
jmp 0x4cadca
mov dword [ebp - 0x14], 0x7b
inc dword [edi]
jmp 0x4ca5f4
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x50], 1
mov byte [ebx], 0x70
inc ebx
xor eax, eax
mov dword [ebp - 0x1ac], eax
inc dword [edi]
jmp 0x4c9c03
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [edi]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
sub edx, 0x30
mov dword [ebp - 0x1ac], edx
inc dword [edi]
mov edx, dword [edi]
cmp byte [edx], 0x30
jb 0x4c9c11
mov ecx, dword [edi]
cmp byte [ecx], 0x39
jbe 0x4c9be5
mov eax, dword [edi]
cmp byte [eax], 0x29
je 0x4c9c26
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x27
jmp 0x4cadca
cmp dword [ebp - 0x1ac], 0xff
jle 0x4c9c40
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x26
jmp 0x4cadca
mov al, byte [ebp - 0x1ac]
mov byte [ebx], al
inc ebx
mov edx, dword [ebp + 0x30]
mov ecx, dword [edi]
sub ecx, dword [edx + 0x18]
inc ecx
sar ecx, 8
mov byte [ebx], cl
mov eax, dword [ebp + 0x30]
mov edx, dword [edi]
sub edx, dword [eax + 0x18]
inc edx
and dl, 0xff
mov byte [ebx + 1], dl
mov byte [ebx + 2], 0
mov byte [ebx + 3], 0
add ebx, 4
xor ecx, ecx
mov dword [ebp - 0x78], ecx
jmp 0x4cadc3
inc dword [edi]
mov eax, dword [edi]
cmp byte [eax], 0x3d
je 0x4c9c8b
mov edx, dword [edi]
cmp byte [edx], 0x3e
jne 0x4c9cad
mov ecx, dword [edi]
cmp byte [ecx], 0x3e
sete al
and eax, 1
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xdc], 0x29
jmp 0x4c9f99
mov edx, dword [edi]
cmp byte [edx], 0x3c
je case.0x4c958f.39
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x29
jmp 0x4cadca
mov eax, dword [edi]
cmp byte [eax], 0x3c
jne 0x4c9cd0
mov edx, 0x3e
jmp 0x4c9cd5
mov edx, 0x27
mov dword [ebp - 0xdc], edx
inc dword [edi]
mov eax, dword [edi]
mov dword [ebp - 0x1a4], eax
jmp 0x4c9ce9
inc dword [edi]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [edx + 0xc]
test byte [ecx + eax], 0x10
jne 0x4c9ce7
mov eax, dword [edi]
sub eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x19c], eax
cmp dword [ebp + 0x34], 0
je 0x4c9d87
mov dl, byte [ebp - 0xdc]
mov ecx, dword [edi]
cmp dl, byte [ecx]
je 0x4c9d29
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2a
jmp 0x4cadca
mov edx, dword [ebp + 0x30]
cmp dword [edx + 0x2c], 0x2710
jl 0x4c9d43
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x31
jmp 0x4cadca
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x19c]
add eax, 3
cmp eax, dword [edx + 0x30]
jle 0x4c9f78
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x19c]
add ecx, 3
mov dword [eax + 0x30], ecx
cmp dword [ebp - 0x19c], 0x20
jle 0x4c9f78
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x30
jmp 0x4cadca
xor ecx, ecx
mov dword [ebp - 0x1b0], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x1a8], edx
xor ecx, ecx
mov dword [ebp - 0x190], ecx
jmp 0x4c9e88
mov eax, dword [ebp - 0x19c]
push eax
mov edx, dword [ebp - 0x1a8]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1a4]
push ecx
call fcn.004e0ac4
add esp, 0xc
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0
jne 0x4c9e3b
mov eax, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x19c]
cmp byte [eax + edx + 2], 0
jne 0x4c9e31
mov ecx, dword [ebp - 0x1a8]
xor eax, eax
mov edx, dword [ebp - 0x1a8]
mov al, byte [ecx]
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, dword [ebp + 0x30]
shl eax, 8
or eax, ecx
mov ecx, dword [edx + 0x38]
inc ecx
cmp eax, ecx
je 0x4c9e25
test byte [ebp - 0x4a], 8
jne 0x4c9e25
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2b
jmp 0x4cadca
mov dword [ebp - 0x1b0], 1
jmp 0x4c9e3b
mov dword [ebp - 0x1b4], 0xffffffff
cmp dword [ebp - 0x1b4], 0
jge 0x4c9e76
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x2c]
sub edx, dword [ebp - 0x190]
imul edx, dword [ecx + 0x30]
push edx
mov eax, dword [ebp - 0x1a8]
push eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x30]
add ecx, dword [ebp - 0x1a8]
push ecx
call fcn.004e084c
add esp, 0xc
jmp 0x4c9e9a
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x30]
add dword [ebp - 0x1a8], edx
inc dword [ebp - 0x190]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [ebp - 0x190]
jg 0x4c9da8
cmp dword [ebp - 0x1b0], 0
jne 0x4c9f22
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x1b8], ecx
xor eax, eax
mov dword [ebp - 0x190], eax
jmp 0x4c9f14
mov edx, dword [ebp - 0x1b8]
cmp edx, dword [ebp - 0x1a8]
je 0x4c9efc
mov ecx, dword [ebp - 0x1b8]
xor eax, eax
mov edx, dword [ebp - 0x1b8]
mov al, byte [ecx]
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, dword [ebp + 0x30]
shl eax, 8
or eax, ecx
mov ecx, dword [edx + 0x38]
inc ecx
cmp eax, ecx
jne 0x4c9f02
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x41
jmp 0x4cadca
dec dword [ebp - 0x190]
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x30]
add dword [ebp - 0x1b8], edx
inc dword [ebp - 0x190]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [ebp - 0x190]
jg 0x4c9eb9
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [edx + 0x38]
inc ecx
shr ecx, 8
mov byte [eax], cl
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x1a8]
mov cl, byte [edx + 0x38]
inc ecx
and cl, 0xff
mov byte [eax + 1], cl
mov edx, dword [ebp - 0x19c]
push edx
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1a8]
add eax, 2
push eax
call fcn.004e0828
mov edx, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x19c]
add esp, 0xc
mov byte [edx + ecx + 2], 0
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x2c]
inc dword [edi]
jmp 0x4ca5cc
mov dword [ebp - 0xdc], 0x29
mov dword [ebp - 0xac], 1
inc dword [edi]
mov edx, dword [edi]
mov dword [ebp - 0x1a4], edx
jmp 0x4c9fa7
inc dword [edi]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [edx + 0xc]
test byte [ecx + eax], 0x10
jne 0x4c9fa5
mov eax, dword [edi]
sub eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x19c], eax
cmp dword [ebp + 0x34], 0
je 0x4ca085
cmp dword [ebp - 0x19c], 0
jne 0x4c9fe8
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3e
jmp 0x4cadca
mov cl, byte [ebp - 0xdc]
mov eax, dword [edi]
cmp cl, byte [eax]
je 0x4ca002
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2a
jmp 0x4cadca
cmp dword [ebp - 0x19c], 0x20
jle 0x4ca019
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x30
jmp 0x4cadca
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x1bc], edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [edi]
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 0x84]
push edx
test byte [ebp - 0x4c], 8
setne cl
and ecx, 1
push ecx
mov eax, dword [ebp - 0x19c]
push eax
mov edx, dword [ebp - 0x1a4]
push edx
mov ecx, dword [ebp + 0x30]
push ecx
call fcn.004c5364
add esp, 0x14
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1bc]
mov dword [eax + 0x1c], edx
cmp dword [ebp - 0xc0], 0
jge 0x4ca166
xor ecx, ecx
mov dword [ebp - 0xc0], ecx
jmp 0x4ca166
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x1a8], edx
xor ecx, ecx
mov dword [ebp - 0x190], ecx
jmp 0x4ca0e4
mov eax, dword [ebp - 0x19c]
push eax
mov edx, dword [ebp - 0x1a8]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1a4]
push ecx
call fcn.004e0a9c
add esp, 0xc
test eax, eax
jne 0x4ca0d2
mov eax, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x19c]
cmp byte [eax + edx + 2], 0
je 0x4ca0f2
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x30]
add dword [ebp - 0x1a8], eax
inc dword [ebp - 0x190]
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x2c]
cmp ecx, dword [ebp - 0x190]
jg 0x4ca09b
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x2c]
cmp edx, dword [ebp - 0x190]
jle 0x4ca122
mov ecx, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x1a8]
xor eax, eax
mov al, byte [ecx]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 1]
or eax, ecx
mov dword [ebp - 0xc0], eax
jmp 0x4ca166
mov eax, dword [ebp - 0x84]
push eax
test byte [ebp - 0x4c], 8
setne dl
and edx, 1
push edx
mov ecx, dword [ebp - 0x19c]
push ecx
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp + 0x30]
push edx
call fcn.004c5364
add esp, 0x14
mov dword [ebp - 0xc0], eax
test eax, eax
jg 0x4ca166
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4cadca
cmp dword [ebp - 0xac], 0
jne 0x4ca2a6
jmp 0x4caaf3
inc dword [edi]
mov dword [ebp - 0xdc], 0x29
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xc4], eax
cmp eax, 0x2b
jne 0x4ca1b5
inc dword [edi]
mov edx, dword [edi]
cmp byte [edx], 0x30
jb 0x4ca1a5
mov ecx, dword [edi]
cmp byte [ecx], 0x39
jbe 0x4ca1d8
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3f
jmp 0x4cadca
cmp dword [ebp - 0xc4], 0x2d
jne 0x4ca1d8
mov edx, dword [edi]
cmp byte [edx + 1], 0x30
jb case.0x4c958f.34
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x39
ja case.0x4c958f.34
inc dword [edi]
xor eax, eax
mov dword [ebp - 0xc0], eax
jmp 0x4ca200
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
sub edx, 0x30
mov dword [ebp - 0xc0], edx
inc dword [edi]
mov edx, dword [edi]
cmp byte [edx], 0x30
jb 0x4ca20e
mov ecx, dword [edi]
cmp byte [ecx], 0x39
jbe 0x4ca1e2
mov al, byte [ebp - 0xdc]
mov edx, dword [edi]
cmp al, byte [edx]
je 0x4ca228
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1d
jmp 0x4cadca
cmp dword [ebp - 0xc4], 0x2d
jne 0x4ca274
cmp dword [ebp - 0xc0], 0
jne 0x4ca248
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x4cadca
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x38]
sub ecx, dword [ebp - 0xc0]
inc ecx
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], 0
jg 0x4ca2a6
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x4cadca
cmp dword [ebp - 0xc4], 0x2b
jne 0x4ca2a6
cmp dword [ebp - 0xc0], 0
jne 0x4ca294
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3a
jmp 0x4cadca
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x38]
add eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x78], ebx
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x1c0], ecx
cmp dword [ebp + 0x34], 0
jne 0x4ca3fd
mov byte [ebx], 0
cmp dword [ebp - 0xc0], 0
je 0x4ca2ee
mov eax, dword [ebp - 0xc0]
push eax
mov edx, dword [ebp - 0x84]
push edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x14]
push eax
call fcn.004c57a8
add esp, 0xc
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
jne 0x4ca3a9
mov edx, dword [ebp - 0x84]
push edx
test byte [ebp - 0x4c], 8
setne cl
and ecx, 1
push ecx
mov eax, dword [ebp - 0xc0]
push eax
push 0
mov edx, dword [ebp + 0x30]
push edx
call fcn.004c5364
add esp, 0x14
test eax, eax
jge 0x4ca334
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x4cadca
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x14]
add edx, dword [ebp - 0xc0]
mov dword [ebp - 0x1c0], edx
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp + 0x30]
add eax, dword [edx + 0x34]
add eax, 0xffffff9c
cmp eax, dword [ecx + 0x24]
ja 0x4ca378
mov eax, dword [ebp + 0x30]
push eax
call fcn.004c4650
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x4cadca
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
lea eax, [ebx + 1]
sub eax, dword [edx + 0x14]
mov edx, dword [ecx + 0x24]
sar eax, 8
mov byte [edx], al
lea eax, [ebx + 1]
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
sub eax, dword [ecx + 0x14]
mov ecx, dword [edx + 0x24]
and al, 0xff
mov byte [ecx + 1], al
mov eax, dword [ebp + 0x30]
add dword [eax + 0x24], 2
jmp 0x4ca3fd
mov eax, dword [ebp - 0x1c0]
xor edx, edx
mov ecx, dword [ebp - 0x1c0]
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
jne 0x4ca3fd
cmp dword [ebp + 0x2c], 0
jg 0x4ca3fd
mov edx, dword [ebp + 0x30]
push edx
mov ecx, dword [ebp - 0x84]
push ecx
mov eax, dword [ebp + 0x28]
push eax
push ebx
mov edx, dword [ebp - 0x1c0]
push edx
call fcn.004c5e10
add esp, 0x14
test eax, eax
je 0x4ca3fd
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x28
jmp 0x4cadca
mov byte [ebx], 0x6f
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1c0]
sub edx, dword [eax + 0x14]
sar edx, 8
mov byte [ebx + 1], dl
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x1c0]
sub eax, dword [ecx + 0x14]
and al, 0xff
mov byte [ebx + 2], al
add ebx, 3
xor edx, edx
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4cadc3
mov dword [ebp - 0x28], 0xffffffff
jmp 0x4cadc3
xor ecx, ecx
lea eax, [ebp - 0x194]
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x1a0], eax
jmp 0x4ca511
mov edx, dword [edi]
inc dword [edi]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x4ca485
je 0x4ca4bc
sub eax, 0x2d
je 0x4ca496
sub eax, 0x1d
je 0x4ca4a4
sub eax, 0xb
je 0x4ca4e8
sub eax, 3
je 0x4ca4f6
jmp 0x4ca501
sub eax, 0x6d
je 0x4ca4c7
sub eax, 6
je 0x4ca4d2
sub eax, 5
je 0x4ca4dd
jmp 0x4ca501
lea edx, [ebp - 0x198]
mov dword [ebp - 0x1a0], edx
jmp 0x4ca511
mov ecx, dword [ebp - 0x1a0]
or dword [ecx], 0x80000
mov eax, dword [ebp + 0x30]
or dword [eax + 0x54], 0x400
jmp 0x4ca511
mov edx, dword [ebp - 0x1a0]
or dword [edx], 1
jmp 0x4ca511
mov ecx, dword [ebp - 0x1a0]
or dword [ecx], 2
jmp 0x4ca511
mov eax, dword [ebp - 0x1a0]
or dword [eax], 4
jmp 0x4ca511
mov edx, dword [ebp - 0x1a0]
or dword [edx], 8
jmp 0x4ca511
mov ecx, dword [ebp - 0x1a0]
or dword [ecx], 0x200
jmp 0x4ca511
mov eax, dword [ebp - 0x1a0]
or dword [eax], 0x40
jmp 0x4ca511
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xc
dec dword [edi]
jmp 0x4cadca
mov ecx, dword [edi]
cmp byte [ecx], 0x29
je 0x4ca523
mov eax, dword [edi]
cmp byte [eax], 0x3a
jne 0x4ca460
mov edx, dword [ebp - 0x4c]
or edx, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x198]
not ecx
and edx, ecx
mov dword [ebp - 0xbc], edx
mov eax, dword [edi]
cmp byte [eax], 0x29
jne 0x4ca5b2
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x4ca56c
cmp dword [ebp + 0x34], 0
je 0x4ca55e
mov eax, dword [ebp + 0x34]
cmp dword [eax], 6
jne 0x4ca56c
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp - 0xbc]
mov dword [edx + 0x50], ecx
jmp 0x4ca59a
test byte [ebp - 0xbb], 2
setne al
and eax, 1
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
xor edx, 1
mov dword [ebp - 0x1c], edx
test byte [ebp - 0xbc], 1
je 0x4ca595
mov ecx, 1
jmp 0x4ca597
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp + 8]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x78], ecx
jmp 0x4cadc3
mov dword [ebp - 0x14], 0x7d
inc dword [edi]
jmp 0x4ca5f4
test byte [ebp - 0x4b], 0x10
je 0x4ca5cc
mov dword [ebp - 0x14], 0x7d
jmp 0x4ca5f4
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x38]
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x38]
shr ecx, 8
mov byte [ebx + 3], cl
mov eax, dword [ebp + 0x30]
mov dl, byte [eax + 0x38]
and dl, 0xff
mov byte [ebx + 4], dl
mov dword [ebp - 0xc8], 2
mov dword [ebp - 0x78], ebx
mov cl, byte [ebp - 0x14]
mov byte [ebx], cl
mov dword [ebp - 0x60], ebx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x58]
mov dword [ebp - 0x48], edx
xor edx, edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x54], edx
cmp dword [ebp + 0x34], 0
jne 0x4ca623
xor ecx, ecx
jmp 0x4ca626
lea ecx, [ebp - 0x54]
push ecx
lea ecx, [ebp - 0xd8]
mov eax, dword [ebp + 0x30]
push eax
lea eax, [ebp - 0xd4]
mov edx, dword [ebp + 0x28]
push edx
lea edx, [ebp - 0xcc]
push eax
push edx
push ecx
lea eax, [ebp - 0xd0]
push eax
cmp dword [ebp - 0x14], 0x81
jne 0x4ca65b
mov edx, 1
jmp 0x4ca65d
xor edx, edx
add edx, dword [ebp + 0x2c]
push edx
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xb0]
push ecx
cmp dword [ebp - 0x14], 0x79
je 0x4ca67f
cmp dword [ebp - 0x14], 0x7a
je 0x4ca67f
xor eax, eax
jmp 0x4ca684
mov eax, 1
push eax
lea ecx, [ebp - 0x60]
mov edx, dword [ebp + 0x14]
push edx
push edi
push ecx
mov eax, dword [ebp - 0xbc]
push eax
call fcn.004caddc
add esp, 0x3c
test eax, eax
je 0x4cadca
cmp dword [ebp - 0x14], 0x7b
jne 0x4ca6bc
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x38]
cmp ecx, dword [ebp - 0xe4]
ja 0x4ca6bc
mov byte [ebx], 0x7c
cmp dword [ebp - 0x14], 0x77
jl 0x4ca6ce
cmp dword [ebp - 0x14], 0x7a
jg 0x4ca6ce
mov eax, dword [ebp + 0x30]
dec dword [eax + 0x4c]
cmp dword [ebp - 0x14], 0x81
jne 0x4ca77a
cmp dword [ebp + 0x34], 0
jne 0x4ca77a
mov dword [ebp - 0x1c4], ebx
xor edx, edx
mov dword [ebp - 0x1c8], edx
inc dword [ebp - 0x1c8]
xor eax, eax
mov ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x1c4]
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0x1c4]
cmp byte [eax], 0x72
jne 0x4ca6f3
cmp byte [ebx + 3], 0x8b
jne 0x4ca74b
cmp dword [ebp - 0x1c8], 1
jle 0x4ca742
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x36
jmp 0x4cadca
mov dword [ebp - 0x14], 0x8b
jmp 0x4ca77a
cmp dword [ebp - 0x1c8], 2
jle 0x4ca762
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1b
jmp 0x4cadca
cmp dword [ebp - 0x1c8], 1
jne 0x4ca77a
or eax, 0xffffffff
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd8], eax
mov edx, dword [edi]
cmp byte [edx], 0x29
je 0x4ca78f
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xe
jmp 0x4cadca
cmp dword [ebp + 0x34], 0
je 0x4ca7e0
mov eax, dword [ebp + 0x34]
mov edx, 0x7fffffeb
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffffa
sub edx, dword [eax]
cmp edx, ecx
jge 0x4ca7b7
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4cadca
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp - 0x54]
add edx, 0xfffffffa
inc ebx
add dword [ecx], edx
mov byte [ebx], 0
mov byte [ebx + 1], 3
add ebx, 2
mov byte [ebx], 0x72
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
add ebx, 2
jmp 0x4cadc3
cmp dword [ebp - 0x14], 0x8b
mov ebx, dword [ebp - 0x60]
je 0x4cadc3
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
xor edx, edx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x14], 0x7b
jl 0x4ca8a2
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4ca851
cmp dword [ebp - 0xd8], 0
jl 0x4ca841
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x68], 1
jmp 0x4ca848
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x3c], 0xffffffff
jmp 0x4ca87e
cmp dword [ebp - 0xd8], 0
jl 0x4ca87e
cmp dword [ebp - 0xd4], 0
jge 0x4ca87e
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xcc], edx
mov ecx, dword [ebp - 0xd8]
or ecx, dword [ebp - 0x48]
mov dword [ebp - 0xd4], ecx
cmp dword [ebp - 0xd4], 0
jl 0x4cadc3
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0x2c], edx
jmp 0x4cadc3
cmp dword [ebp - 0x14], 0x77
jne 0x4cadc3
cmp dword [ebp - 0xd4], 0
jl 0x4cadc3
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x2c], eax
jmp 0x4cadc3
mov edx, dword [edi]
mov dword [ebp - 0x70], edx
push 0
mov ecx, dword [ebp - 0x4c]
push ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x38]
lea eax, [ebp - 0xe8]
push edx
mov ecx, dword [ebp + 0x14]
push ecx
push eax
push edi
call fcn.004c4750
add esp, 0x18
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
jne 0x4cadca
test eax, eax
jne 0x4ca911
mov esi, dword [ebp - 0xe8]
jmp 0x4cac2f
cmp eax, 0x1a
jne 0x4ca93a
mov eax, dword [edi]
cmp byte [eax + 1], 0x5c
jne 0x4ca92e
mov edx, dword [edi]
cmp byte [edx + 2], 0x45
jne 0x4ca92e
add dword [edi], 2
jmp 0x4cadc3
mov dword [ebp - 0x64], 1
jmp 0x4cadc3
cmp eax, 0x19
je 0x4cadc3
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4ca95a
cmp eax, 5
jle 0x4ca95a
cmp eax, 0x17
jge 0x4ca95a
mov dword [ebp - 0x28], 0xffffffff
mov ecx, dword [ebp - 0x20]
cmp eax, 0x1b
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
jne 0x4caa82
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x80], ecx
inc dword [edi]
mov eax, dword [edi]
cmp byte [eax], 0x3c
jne 0x4ca994
mov edx, 0x3e
jmp 0x4ca999
mov edx, 0x27
mov dword [ebp - 0xdc], edx
xor eax, eax
mov dword [ebp - 0xc8], eax
xor ecx, ecx
mov dword [ebp - 0xb0], ecx
mov eax, dword [edi]
cmp byte [eax + 1], 0x2b
je 0x4caa51
mov edx, dword [edi]
cmp byte [edx + 1], 0x2d
je 0x4caa51
mov dword [ebp - 0x1cc], 1
mov eax, dword [edi]
inc eax
jmp 0x4caa0b
mov edx, dword [ebp + 0x30]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [edx + 0xc]
test byte [edx + ecx], 4
jne 0x4ca9fa
xor ecx, ecx
mov dword [ebp - 0x1cc], ecx
mov ecx, dword [ebp + 0x30]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ecx + 0xc]
test byte [ecx + edx], 0x10
je 0x4caa1a
inc eax
cmp byte [eax], 0
je 0x4caa1a
mov dl, byte [ebp - 0xdc]
cmp dl, byte [eax]
jne 0x4ca9e2
mov dl, byte [ebp - 0xdc]
cmp dl, byte [eax]
je 0x4caa32
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x39
jmp 0x4cadc3
cmp dword [ebp - 0x1cc], 0
je 0x4caa42
inc dword [edi]
jmp 0x4ca184
mov dword [ebp - 0xac], 1
jmp 0x4c9f99
mov eax, dword [edi]
add eax, 2
jmp 0x4caa59
inc eax
cmp byte [eax], 0x30
jb 0x4caa63
cmp byte [eax], 0x39
jbe 0x4caa58
mov dl, byte [ebp - 0xdc]
cmp dl, byte [eax]
je 0x4caa7b
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x39
jmp 0x4cadc3
inc dword [edi]
jmp 0x4ca184
cmp eax, 0x1c
jne 0x4caae3
mov eax, dword [edi]
cmp byte [eax + 1], 0x3c
je 0x4caaad
mov edx, dword [edi]
cmp byte [edx + 1], 0x27
je 0x4caaad
mov ecx, dword [edi]
cmp byte [ecx + 1], 0x7b
je 0x4caaad
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x45
jmp 0x4cadc3
xor edx, edx
mov dword [ebp - 0xac], edx
inc dword [edi]
mov ecx, dword [edi]
cmp byte [ecx], 0x3c
jne 0x4caac5
mov eax, 0x3e
jmp 0x4caad8
mov edx, dword [edi]
cmp byte [edx], 0x27
jne 0x4caad3
mov eax, 0x27
jmp 0x4caad8
mov eax, 0x7d
mov dword [ebp - 0xdc], eax
jmp 0x4c9f99
test eax, eax
jge 0x4cabc1
neg eax
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4cab00
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x78], ebx
test byte [ebp - 0x4c], 1
je 0x4cab0d
mov dl, 0x6e
jmp 0x4cab0f
mov dl, 0x6d
mov byte [ebx], dl
inc ebx
mov eax, dword [ebp - 0xc0]
sar eax, 8
mov byte [ebx], al
mov cl, byte [ebp - 0xc0]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
cmp dword [ebp - 0xc0], 0x20
jge 0x4cab44
mov ecx, dword [ebp - 0xc0]
mov eax, 1
shl eax, cl
jmp 0x4cab49
mov eax, 1
mov edx, dword [ebp + 0x30]
or dword [edx + 0x48], eax
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x44]
cmp eax, dword [ebp - 0xc0]
jge 0x4cab69
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp - 0xc0]
mov dword [edx + 0x44], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x20]
mov dword [ebp - 0x1d0], edx
cmp dword [ebp - 0x1d0], 0
je 0x4cadc3
mov ecx, dword [ebp - 0x1d0]
movzx eax, word [ecx + 4]
cmp eax, dword [ebp - 0xc0]
jne 0x4caba5
mov edx, dword [ebp - 0x1d0]
mov word [edx + 6], 1
jmp 0x4cadc3
mov ecx, dword [ebp - 0x1d0]
mov eax, dword [ecx]
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0
jne 0x4cab82
jmp 0x4cadc3
cmp eax, 0x16
je 0x4cabd0
cmp eax, 0xf
je 0x4cabd0
cmp eax, 0x10
jne 0x4cabe3
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2d
jmp 0x4cadca
cmp eax, 5
je 0x4cabed
cmp eax, 4
jne 0x4cac00
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + 0x40], 0
jne 0x4cac00
mov edx, dword [ebp + 0x30]
mov dword [edx + 0x40], 1
cmp eax, 5
jle 0x4cac0e
cmp eax, 0x17
jge 0x4cac0e
mov ecx, ebx
jmp 0x4cac10
xor ecx, ecx
mov dword [ebp - 0x78], ecx
cmp dword [ebp - 0x84], 0
jne 0x4cac25
cmp eax, 0xe
jne 0x4cac25
mov dl, 0xd
jmp 0x4cac27
mov edx, eax
mov byte [ebx], dl
inc ebx
jmp 0x4cadc3
cmp dword [ebp - 0x84], 0
je 0x4cac55
cmp esi, 0x7f
jbe 0x4cac55
lea eax, [ebp - 0xf0]
push eax
push esi
call fcn.004d7d6c
add esp, 8
mov dword [ebp - 0xe0], eax
jmp 0x4cacbc
mov ecx, esi
mov byte [ebp - 0xf0], cl
mov dword [ebp - 0xe0], 1
jmp 0x4cacbc
mov dword [ebp - 0xe0], 1
mov eax, esi
mov byte [ebp - 0xf0], al
cmp dword [ebp - 0x84], 0
je 0x4cacbc
cmp esi, 0xc0
jb 0x4cacbc
jmp 0x4caca7
inc dword [edi]
mov edx, dword [edi]
mov eax, dword [ebp - 0xe0]
mov cl, byte [edx]
mov byte [ebp + eax - 0xf0], cl
inc dword [ebp - 0xe0]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
and ecx, 0xc0
cmp ecx, 0x80
je 0x4cac8e
mov dword [ebp - 0x78], ebx
test byte [ebp - 0x4c], 1
je 0x4cacc9
mov al, 0x1e
jmp 0x4caccb
mov al, 0x1d
mov byte [ebx], al
inc ebx
xor esi, esi
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x1d4], eax
cmp esi, dword [ebp - 0xe0]
jae 0x4cacfe
mov edx, dword [ebp - 0x1d4]
mov cl, byte [edx]
mov byte [ebx], cl
inc ebx
inc esi
inc dword [ebp - 0x1d4]
cmp esi, dword [ebp - 0xe0]
jb 0x4cace4
cmp byte [ebp - 0xf0], 0xd
je 0x4cad10
cmp byte [ebp - 0xf0], 0xa
jne 0x4cad1a
mov eax, dword [ebp + 0x30]
or dword [eax + 0x54], 0x800
cmp dword [ebp - 0x28], 0xfffffffe
jne 0x4cad88
mov dword [ebp - 0x3c], 0xffffffff
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0xe0], 1
je 0x4cad42
cmp dword [ebp - 0x40], 0
jne 0x4cad7d
xor eax, eax
mov al, byte [ebp - 0xf0]
or eax, dword [ebp - 0x40]
mov dword [ebp - 0x20], eax
xor edx, edx
mov dl, byte [ebp - 0xf0]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0xe0], 1
je 0x4cadc3
xor eax, eax
mov al, byte [ebx - 1]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x58]
mov dword [ebp - 0x2c], ecx
jmp 0x4cadc3
or eax, 0xffffffff
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
jmp 0x4cadc3
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0xe0], 1
je 0x4cadaf
cmp dword [ebp - 0x40], 0
jne 0x4cadc3
xor ecx, ecx
mov cl, byte [ebx - 1]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x58]
or edx, dword [ebp - 0x40]
mov dword [ebp - 0x2c], edx
inc dword [edi]
jmp 0x4c6e5b
mov ecx, dword [ebp + 0x10]
mov eax, dword [edi]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret