Function at 0x4c8328
Capabilities:
Authenticate hmac
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffddc
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor edx, edx
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], ecx
xor edx, edx
mov eax, dword [ebp - 8]
mov esi, dword [eax]
xor eax, eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
xor eax, eax
xor edx, edx
mov ecx, dword [ecx]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], edx
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test byte [ebp - 0x47], 8
setne al
and eax, 1
mov dword [ebp - 0x80], eax
mov eax, 0xfffffffe
test byte [ebp - 0x47], 2
setne dl
and edx, 1
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x24]
xor ecx, 1
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x48], 1
je 0x4c78fa
mov edx, pe_nt_image_headers32
jmp 0x4c78fc
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
mov eax, dword [ebp + 8]
test eax, eax
je 0x4c79a9
mov edx, dword [ebx + 0x10]
add edx, 0x1000
cmp esi, edx
jbe 0x4c792b
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x4cb88f
mov ecx, dword [ebp - 0x54]
cmp esi, ecx
jae 0x4c7935
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
mov edx, 0x7fffffeb
mov ecx, dword [eax]
mov eax, esi
sub edx, ecx
mov ecx, dword [ebp - 0x54]
sub eax, ecx
cmp edx, eax
jge 0x4c795a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x4cb88f
mov ecx, esi
mov eax, dword [ebp - 0x54]
sub ecx, eax
mov edx, dword [ebp + 8]
add dword [edx], ecx
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x4c79a1
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x58]
cmp eax, edx
jbe 0x4c79a4
mov ecx, esi
mov eax, dword [ebp - 0x70]
sub ecx, eax
push ecx
mov edx, dword [ebp - 0x70]
push edx
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.004c5668
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x58]
add esp, 0xc
sub eax, edx
mov ecx, dword [ebp - 0x58]
sub esi, eax
mov dword [ebp - 0x70], ecx
jmp 0x4c79a4
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
jmp 0x4c79c6
mov eax, dword [ebx + 0x10]
add eax, 0x1000
mov edx, dword [ebx + 0x20]
cmp eax, edx
jae 0x4c79c6
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x4cb88f
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x4c7a32
test edi, edi
je 0x4c7a32
cmp edi, 0x5c
jne 0x4c79f2
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x4c79f2
xor ecx, ecx
mov dword [ebp - 0x60], ecx
inc dword [ebp - 0x68]
jmp 0x4cb887
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4c7a12
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4c7a0d
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.004c6cbc
xor ecx, ecx
mov dword [ebp - 0x74], ecx
test byte [ebp - 0x47], 0x40
je 0x4cb749
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.004c6c90
mov esi, eax
jmp 0x4cb749
cmp edi, 0x2a
je 0x4c7a57
cmp edi, 0x2b
je 0x4c7a57
cmp edi, 0x3f
je 0x4c7a57
cmp edi, 0x7b
jne 0x4c7a53
mov eax, dword [ebp - 0x68]
inc eax
call fcn.004c5e10
test eax, eax
jne 0x4c7a57
xor edx, edx
jmp 0x4c7a5c
mov edx, 1
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x4c7a97
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0x4c7a97
mov eax, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test eax, eax
jg 0x4c7a97
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4c7a92
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.004c6cbc
xor ecx, ecx
mov dword [ebp - 0x74], ecx
test byte [ebp - 0x48], 8
je 0x4c7b52
mov eax, dword [ebx + 0xc]
test byte [eax + edi], 1
jne 0x4cb887
cmp edi, 0x23
jne 0x4c7b52
jmp 0x4c7b33
mov edx, dword [ebx + 0x50]
test edx, edx
je 0x4c7aef
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0x68]
cmp ecx, eax
jbe 0x4c7ae4
lea edx, [ebx + 0x54]
push edx
mov ecx, dword [ebp - 0x80]
push ecx
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x50]
mov eax, dword [ebp - 0x68]
call fcn.004d6604
test eax, eax
jne 0x4c7ae8
xor ecx, ecx
jmp 0x4c7b26
mov ecx, 1
jmp 0x4c7b26
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x54]
sub eax, edx
mov edx, dword [ebp - 0x68]
cmp eax, edx
jb 0x4c7b1d
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
mov al, byte [ebx + 0x58]
cmp cl, al
jne 0x4c7b1d
mov edx, dword [ebx + 0x54]
dec edx
je 0x4c7b21
mov ecx, dword [ebp - 0x68]
mov cl, byte [ecx + 1]
mov al, byte [ebx + 0x59]
cmp cl, al
je 0x4c7b21
xor ecx, ecx
jmp 0x4c7b26
mov ecx, 1
test ecx, ecx
je 0x4c7b33
mov eax, dword [ebx + 0x54]
dec eax
add dword [ebp - 0x68], eax
jmp 0x4c7b43
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x4c7ab9
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
jne 0x4cb887
xor edi, edi
test byte [ebp - 0x47], 0x40
je 0x4c7b73
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x4c7b73
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.004c6c90
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x4c7bc1
je 0x4c92e1
cmp edx, 0x29
jg 0x4c7ba3
je 0x4c7bf9
sub edx, 1
jb 0x4c7bf9
sub edx, 0x23
je 0x4c7c79
sub edx, 4
je 0x4ca05e
jmp 0x4cb749
sub edx, 0x2a
je 0x4c92c3
dec edx
je 0x4c92d1
sub edx, 3
je 0x4c7c87
jmp 0x4cb749
cmp edx, 0x5e
jg 0x4c7be8
je 0x4c7c56
sub edx, 0x5b
je 0x4c7cd6
dec edx
je 0x4cb3bd
dec edx
je 0x4c7cb9
jmp 0x4cb749
sub edx, 0x7b
je 0x4c9290
dec edx
je 0x4c7bf9
jmp 0x4cb749
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x2c]
mov dword [ecx], ebx
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x30]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [edi], eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x4c7c4c
mov ecx, dword [ebp + 8]
mov edx, esi
mov ebx, 0x7fffffeb
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x54]
sub ebx, eax
sub edx, ecx
cmp ebx, edx
jge 0x4c7c42
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x4cb88f
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x54]
sub esi, edx
add dword [ecx], esi
mov eax, 1
jmp 0x4cb899
test byte [ebp - 0x48], 2
je 0x4c7c6b
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4c7c6b
mov dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1a
inc esi
jmp 0x4cb887
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1b
inc esi
jmp 0x4cb887
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x4c7c96
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 4
je 0x4c7caf
mov al, 0xd
jmp 0x4c7cb1
mov al, 0xc
mov byte [esi], al
inc esi
jmp 0x4cb887
test byte [ebx + 0x43], 2
je 0x4cb749
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x40
jmp 0x4cb88f
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x3a
je 0x4c7cff
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x4c7cff
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x4c7d31
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.004c6b38
test eax, eax
je 0x4c7d31
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
jne 0x4c7d22
mov eax, 0xd
jmp 0x4c7d27
mov eax, 0x1f
mov edx, dword [ebp + 0x1c]
mov dword [edx], eax
jmp 0x4cb88f
xor ecx, ecx
mov dword [ebp - 0x94], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx edi, byte [ecx]
cmp edi, 0x5c
jne 0x4c7d77
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x4c7d59
inc dword [ebp - 0x68]
jmp 0x4c7d39
push 3
push 0x4f513d
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
call fcn.004c56a0
add esp, 0xc
test eax, eax
jne 0x4c7d92
add dword [ebp - 0x68], 3
jmp 0x4c7d39
mov ecx, dword [ebp - 0x94]
test ecx, ecx
jne 0x4c7d92
cmp edi, 0x5e
jne 0x4c7d92
mov dword [ebp - 0x94], 1
jmp 0x4c7d39
cmp edi, 0x5d
jne 0x4c7dca
test byte [ebx + 0x43], 2
je 0x4c7dca
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x4c7dab
mov dl, 0xd
jmp 0x4c7dad
mov dl, 0x6d
mov byte [esi], dl
inc esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x4c7dbf
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
jmp 0x4cb887
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xb0], 0xffffffff
push 0x20
lea edx, [ebp - 0x1fc]
push 0
push edx
call fcn.004c5684
xor ecx, ecx
lea eax, [esi + 4]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x88], edx
je 0x4c907b
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4c7ee3
cmp edi, 0x7f
jle 0x4c7ee3
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
cmp edi, 0xc0
jl 0x4c7ee3
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x4f5614]
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xe4]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x4f5258]
and edi, edx
shl edi, cl
mov dword [ebp - 0xe0], 1
mov ecx, dword [ebp - 0x68]
lea eax, [ecx + 1]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
cmp edx, eax
jg 0x4c7eda
sub dword [ebp - 0xe8], 6
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1d8]
xor eax, eax
mov al, byte [edx]
and eax, 0x3f
shl eax, cl
or edi, eax
inc dword [ebp - 0xe0]
inc dword [ebp - 0x1d8]
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
cmp edx, ecx
jle 0x4c7ea0
mov ecx, dword [ebp - 0xe4]
add dword [ebp - 0x68], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x4c7f09
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
sub edx, eax
mov ecx, dword [ebp + 8]
add dword [ecx], edx
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x84], edx
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x4c7f3c
cmp edi, 0x5c
jne 0x4c8a81
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x4c8a81
xor ecx, ecx
mov dword [ebp - 0x60], ecx
inc dword [ebp - 0x68]
jmp 0x4c905a
cmp edi, 0x5b
jne 0x4c81ef
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3a
je 0x4c7f70
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2e
je 0x4c7f70
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3d
jne 0x4c81ef
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.004c6b38
test eax, eax
je 0x4c81ef
xor ecx, ecx
mov dword [ebp - 0xec], ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x4c7faf
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1f
jmp 0x4cb88f
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5e
jne 0x4c7fd6
mov dword [ebp - 0xec], 1
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, eax
mov eax, dword [ebp - 0x68]
call fcn.004c6b8c
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
test edx, edx
jge 0x4c8004
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x4cb88f
test byte [ebp - 0x48], 1
je 0x4c801d
mov ecx, dword [ebp - 0xf0]
cmp ecx, 2
jg 0x4c801d
xor eax, eax
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
lea edx, [edx + edx*2]
mov dword [ebp - 0xf0], edx
push 0x20
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx*4 + 0x4f45e4]
mov edx, dword [ebp - 0xfc]
add eax, edx
push eax
lea ecx, [ebp - 0x21c]
push ecx
call fcn.004c564c
add esp, 0xc
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x4f45e8]
mov dword [ebp - 0xf4], edx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx*4 + 0x4f45ec]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0xf4]
test edx, edx
jl 0x4c811f
mov ecx, dword [ebp - 0xf8]
test ecx, ecx
jl 0x4c80d8
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov dl, byte [eax]
mov eax, dword [ebp - 0x1dc]
or byte [eax], dl
inc edi
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c80b4
jmp 0x4c811f
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea ecx, [edx + ecx]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
mov eax, dword [ebp - 0x1d8]
not dl
and byte [eax], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4c80fb
mov edx, dword [ebp - 0xf8]
test edx, edx
jge 0x4c812f
neg dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf8]
dec ecx
jne 0x4c8141
and byte [ebp - 0x21b], 0xc3
jmp 0x4c8153
mov ecx, dword [ebp - 0xf8]
cmp ecx, 2
jne 0x4c8153
and byte [ebp - 0x211], 0x7f
mov eax, dword [ebp - 0xec]
test eax, eax
je 0x4c819d
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [ecx]
not cl
or byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c8177
jmp 0x4c81d9
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x1d8]
inc edi
mov cl, byte [ecx]
or byte [eax], cl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4c81b7
mov edx, dword [ebp - 0x6c]
inc edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0xac], 0xa
jmp 0x4c905a
cmp edi, 0x5c
jne 0x4c8a81
mov ecx, dword [ebp - 0x48]
push ecx
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.004c58ec
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4cb88f
mov ecx, edi
neg ecx
cmp ecx, 5
jne 0x4c822b
mov edi, 8
jmp 0x4c8292
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x4c823b
mov edi, 0x58
jmp 0x4c8292
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x4c824b
mov edi, 0x52
jmp 0x4c8292
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x4c8285
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x4c8277
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
jne 0x4c8277
add dword [ebp - 0x68], 2
jmp 0x4c905a
mov dword [ebp - 0x60], 1
jmp 0x4c905a
mov edx, edi
neg edx
cmp edx, 0x19
je 0x4c905a
test edi, edi
jge 0x4c8a81
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x100], ecx
add dword [ebp - 0xac], 2
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4c84b4
mov edx, edi
neg edx
add edx, 0xfffffffa
cmp edx, 5
ja case.default.0x4c82c5
jmp dword [edx*4 + 0x4c82cc]
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c8301
jmp 0x4c905a
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4c834f
jmp 0x4c905a
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c8398
jmp 0x4c905a
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4c83e9
jmp 0x4c905a
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c842e
and byte [ebp - 0x1fb], 0xf7
jmp 0x4c905a
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4c8482
or byte [ebp - 0x1fb], 8
jmp 0x4c905a
cmp edi, 0xfffffff9
je 0x4c905a
cmp edi, 0xfffffffa
je 0x4c905a
cmp edi, 0xfffffff5
je 0x4c905a
cmp edi, 0xfffffff6
je 0x4c905a
cmp edi, 0xfffffff7
je 0x4c905a
cmp edi, 0xfffffff8
je 0x4c905a
mov ecx, edi
neg ecx
cmp ecx, 0x13
jne 0x4c8617
or byte [ebp - 0x1fb], 2
or byte [ebp - 0x1f8], 1
or byte [ebp - 0x1e8], 1
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4c905a
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, 0x1680
mov byte [edx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x180e
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x2000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x200a
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x202f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x205f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x3000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
jmp 0x4c905a
mov ecx, edi
neg ecx
cmp ecx, 0x12
jne 0x4c8834
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x104], 0xff
mov edx, edi
dec edx
je 0x4c864d
sub edx, 3
je 0x4c8656
sub edx, 0x10
je 0x4c865f
jmp 0x4c8666
xor dword [ebp - 0x104], 2
jmp 0x4c8666
xor dword [ebp - 0x104], 1
jmp 0x4c8666
xor dword [ebp - 0x104], 1
mov cl, byte [ebp - 0x104]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c8632
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4c905a
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x167f
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x1681
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x180d
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x180f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x1fff
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x200b
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x202e
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x2030
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x205e
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x2060
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x2fff
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x3001
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
jmp 0x4c905a
mov ecx, edi
neg ecx
cmp ecx, 0x15
jne 0x4c88b2
or byte [ebp - 0x1fb], 4
or byte [ebp - 0x1fb], 8
or byte [ebp - 0x1fb], 0x10
or byte [ebp - 0x1fb], 0x20
or byte [ebp - 0x1ec], 0x20
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4c905a
mov dword [ebp - 0x7c], 1
mov eax, dword [ebp - 0x84]
mov byte [eax], 2
mov eax, 0x2028
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
jmp 0x4c905a
mov edx, edi
neg edx
cmp edx, 0x14
jne 0x4c89af
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x108], 0xff
mov edx, edi
dec edx
je 0x4c88e3
sub edx, 0xf
je 0x4c8901
jmp 0x4c8908
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x4c8908
xor dword [ebp - 0x108], 0x20
mov cl, byte [ebp - 0x108]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c88cd
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4c905a
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x2027
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
jmp 0x4c905a
mov ecx, edi
neg ecx
cmp ecx, 0x10
je 0x4c89c5
mov ecx, edi
neg ecx
cmp ecx, 0xf
jne 0x4c8a55
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push eax
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x10c]
call fcn.004c5ce8
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
test ecx, ecx
jl 0x4cb88f
mov dword [ebp - 0x7c], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
mov edx, dword [ebp - 0x10c]
cmp eax, edx
je 0x4c8a11
mov cl, 3
jmp 0x4c8a13
mov cl, 4
mov eax, dword [ebp - 0x84]
mov byte [eax], cl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x114]
mov eax, dword [ebp - 0x84]
mov byte [eax], dl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x110]
mov ecx, dword [ebp - 0x84]
mov byte [ecx], dl
inc dword [ebp - 0x84]
sub dword [ebp - 0xac], 2
jmp 0x4c905a
test byte [ebp - 0x48], 0x40
je 0x4c8a69
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x4cb88f
sub dword [ebp - 0xac], 2
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
jmp 0x4c8a81
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x4c8a9b
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
je 0x4c8a78
mov edx, dword [ebp - 0x68]
cmp edi, 0xd
mov dword [ebp - 0xdc], edx
je 0x4c8aae
cmp edi, 0xa
jne 0x4c8ab2
or dword [ebx + 0x44], 0x20
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x4c8f44
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2d
jne 0x4c8f44
add dword [ebp - 0x68], 2
jmp 0x4c8ad8
add dword [ebp - 0x68], 2
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x4c8b1f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
je 0x4c8ad4
jmp 0x4c8b1f
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5c
jne 0x4c8b16
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x45
jne 0x4c8b16
add dword [ebp - 0x68], 2
jmp 0x4c8b1f
mov dword [ebp - 0x60], 1
jmp 0x4c8b38
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5c
jne 0x4c8b38
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x51
je 0x4c8af3
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
je 0x4c8b54
mov edx, dword [ebp - 0x60]
test edx, edx
jne 0x4c8b62
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5d
jne 0x4c8b62
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], edx
jmp 0x4c8f44
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4c8c37
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xc0
jl 0x4c8c44
mov eax, dword [ebp - 0x118]
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x4f5614]
mov dword [ebp - 0x120], edx
mov ecx, dword [ebp - 0x120]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x124], ecx
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x120]
mov edx, dword [eax*4 + 0x4f5258]
mov eax, dword [ebp - 0x118]
and edx, eax
shl edx, cl
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x11c], 1
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
cmp edx, ecx
jg 0x4c8c2c
sub dword [ebp - 0x124], 6
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, cl
or dword [ebp - 0x118], eax
inc dword [ebp - 0x11c]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
cmp edx, ecx
jle 0x4c8bf1
mov ecx, dword [ebp - 0x120]
add dword [ebp - 0x68], ecx
jmp 0x4c8c44
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x4c8ce2
mov eax, dword [ebp - 0x118]
cmp eax, 0x5c
jne 0x4c8ce2
mov edx, dword [ebp - 0x48]
push edx
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.004c58ec
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x4cb88f
mov edx, dword [ebp - 0x118]
test edx, edx
jge 0x4c8ce2
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xfffffffb
jne 0x4c8ca6
mov dword [ebp - 0x118], 8
jmp 0x4c8ce2
mov eax, dword [ebp - 0x118]
cmp eax, 0xffffffea
jne 0x4c8cbd
mov dword [ebp - 0x118], 0x58
jmp 0x4c8ce2
mov edx, dword [ebp - 0x118]
cmp edx, 0xffffffef
jne 0x4c8cd4
mov dword [ebp - 0x118], 0x52
jmp 0x4c8ce2
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], ecx
jmp 0x4c8f44
mov eax, dword [ebp - 0x118]
cmp edi, eax
jle 0x4c8cfa
mov edx, dword [ebp + 0x1c]
mov dword [edx], 8
jmp 0x4cb88f
mov ecx, dword [ebp - 0x118]
cmp edi, ecx
je 0x4c8f44
mov eax, dword [ebp - 0x118]
cmp eax, 0xd
je 0x4c8d1e
mov edx, dword [ebp - 0x118]
cmp edx, 0xa
jne 0x4c8d22
or dword [ebx + 0x44], 0x20
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4c8eac
mov eax, dword [ebp - 0x118]
cmp eax, 0xff
jg 0x4c8d53
test byte [ebp - 0x48], 1
je 0x4c8eac
mov edx, dword [ebp - 0x118]
cmp edx, 0x7f
jle 0x4c8eac
mov dword [ebp - 0x7c], 1
test byte [ebp - 0x48], 1
je 0x4c8e6e
mov dword [ebp - 0x130], edi
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x134], ecx
jmp 0x4c8e48
mov eax, dword [ebp - 0x128]
cmp eax, edi
jb 0x4c8d99
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
cmp edx, eax
jbe 0x4c8e48
mov edx, dword [ebp - 0x128]
cmp edi, edx
jbe 0x4c8dbb
mov ecx, edi
dec ecx
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
ja 0x4c8dbb
mov edi, dword [ebp - 0x128]
jmp 0x4c8e48
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jae 0x4c8dea
mov ecx, dword [ebp - 0x118]
inc ecx
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x4c8dea
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], edx
jmp 0x4c8e48
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
jne 0x4c8e0b
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
jmp 0x4c8e31
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x128]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x12c]
call fcn.004d68f8
add dword [ebp - 0x84], eax
lea ecx, [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x134]
call fcn.004c6ce4
test eax, eax
jne 0x4c8d7b
mov ecx, dword [ebp - 0x84]
mov eax, edi
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x118]
call fcn.004d68f8
add dword [ebp - 0x84], eax
jmp 0x4c905a
mov ecx, dword [ebp - 0x118]
sub ecx, edi
inc ecx
add dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4c905a
mov edx, dword [ebp - 0x118]
cmp edi, edx
jg 0x4c905a
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x4c8ef2
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
test byte [ebp - 0x48], 1
je 0x4c8f34
mov ecx, dword [ebx + 4]
xor eax, eax
mov al, byte [ecx + edi]
mov dword [ebp - 0x138], eax
mov al, 1
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x138]
and ecx, 7
shl al, cl
test edx, edx
jns 0x4c8f2a
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
inc edi
mov ecx, dword [ebp - 0x118]
cmp edi, ecx
jle 0x4c8ee0
jmp 0x4c905a
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4c9006
cmp edi, 0xff
jg 0x4c8f6a
test byte [ebp - 0x48], 1
je 0x4c9006
cmp edi, 0x7f
jle 0x4c9006
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, edi
mov byte [edx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004d68f8
add dword [ebp - 0x84], eax
test byte [ebp - 0x48], 1
je 0x4c905a
mov ecx, edi
test ecx, ecx
jns 0x4c8fa6
add ecx, 0x7f
sar ecx, 7
movzx ecx, byte [ecx + 0x500580]
shl ecx, 7
mov eax, edi
and eax, 0x8000007f
jns 0x4c8fc1
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x4f6780]
mov ecx, dword [edx*8 + 0x4f593c]
add ecx, edi
mov dword [ebp - 0x13c], ecx
cmp ecx, edi
je 0x4c905a
mov eax, dword [ebp - 0x84]
mov byte [eax], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x13c]
call fcn.004d68f8
add dword [ebp - 0x84], eax
jmp 0x4c905a
mov ecx, edi
mov dl, 1
and ecx, 7
mov eax, edi
shl dl, cl
test eax, eax
jns 0x4c9018
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
test byte [ebp - 0x48], 1
je 0x4c904e
mov edx, dword [ebx + 4]
xor ecx, ecx
mov al, 1
mov cl, byte [edx + edi]
mov edi, ecx
mov ecx, edi
mov edx, edi
and ecx, 7
shl al, cl
test edx, edx
jns 0x4c9044
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
inc dword [ebp - 0xac]
mov dword [ebp - 0xb0], edi
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx edi, byte [ecx]
test edi, edi
je 0x4c907b
cmp edi, 0x5d
jne 0x4c7e19
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x4c7e19
test edi, edi
jne 0x4c908d
mov edx, dword [ebp + 0x1c]
mov dword [edx], 6
jmp 0x4cb88f
mov ecx, dword [ebp - 0xac]
dec ecx
jne 0x4c9148
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
jne 0x4c9148
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4c90c8
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x4c90c8
mov ecx, dword [ebp - 0xb0]
cmp ecx, 0x80
jge 0x4c9148
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x4c90ff
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4c90e7
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov byte [esi], 0x1e
inc esi
mov dl, byte [ebp - 0xb0]
mov byte [esi], dl
inc esi
jmp 0x4cb887
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4c912d
mov eax, dword [ebp - 0xb0]
cmp eax, 0x7f
jle 0x4c912d
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0xb0]
call fcn.004d68f8
mov dword [ebp - 0xd0], eax
jmp 0x4cb79d
mov dl, byte [ebp - 0xb0]
mov byte [ebp - 0xd8], dl
mov dword [ebp - 0xd0], 1
jmp 0x4cb79d
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4c9157
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x4c9210
mov ecx, dword [ebp - 0x98]
test ecx, ecx
jne 0x4c9210
mov eax, dword [ebp - 0x84]
mov byte [eax], 0
inc dword [ebp - 0x84]
mov byte [esi], 0x50
inc esi
add esi, 2
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x4c91a0
mov cl, 1
jmp 0x4c91a2
xor ecx, ecx
mov byte [esi], cl
mov eax, dword [ebp - 0xac]
test eax, eax
jle 0x4c91e5
or byte [esi], 2
inc esi
mov edx, dword [ebp - 0x84]
sub edx, esi
lea ecx, [esi + 0x20]
push edx
push esi
push ecx
call fcn.004c5668
add esp, 0xc
lea eax, [ebp - 0x1fc]
push 0x20
push eax
push esi
call fcn.004c564c
add esp, 0xc
mov esi, dword [ebp - 0x84]
add esi, 0x20
jmp 0x4c91eb
mov esi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x70]
mov eax, esi
sub eax, edx
mov ecx, dword [ebp - 0x70]
sar eax, 8
mov byte [ecx + 1], al
mov ecx, esi
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x70]
sub ecx, eax
and cl, 0xff
mov byte [edx + 2], cl
jmp 0x4cb887
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
cmp ecx, eax
jne 0x4c9224
mov dl, 0x4e
jmp 0x4c9226
mov dl, 0x4f
mov byte [esi], dl
inc esi
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x4c9276
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x4c9288
xor edi, edi
mov eax, esi
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [ecx]
not cl
mov byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4c9250
jmp 0x4c9288
push 0x20
lea edx, [ebp - 0x1fc]
push edx
push esi
call fcn.004c564c
add esp, 0xc
add esi, 0x20
jmp 0x4cb887
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
je 0x4cb749
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x68]
inc eax
call fcn.004c5e90
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x4cb88f
jmp 0x4c92ed
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x4c92ed
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x4c92ed
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x4c9302
mov edx, dword [ebp + 0x1c]
mov dword [edx], 9
jmp 0x4cb88f
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4c9315
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jne 0x4c9323
xor edx, edx
jmp 0x4c9328
mov edx, 0x200
mov dword [ebp - 0x40], edx
xor eax, eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x4c935f
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
inc dword [ebp - 0x68]
jmp 0x4c937d
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x4c9377
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x10], ecx
inc dword [ebp - 0x68]
jmp 0x4c937d
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1c
je 0x4c9399
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1d
jne 0x4c946b
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4c93f8
test byte [esi - 1], 0x80
je 0x4c93f8
lea eax, [esi - 1]
mov dword [ebp - 0x140], eax
jmp 0x4c93b7
dec dword [ebp - 0x140]
mov edx, dword [ebp - 0x140]
xor ecx, ecx
mov cl, byte [edx]
and ecx, 0xc0
cmp ecx, 0x80
je 0x4c93b1
mov edi, esi
mov eax, dword [ebp - 0x140]
sub edi, eax
push edi
mov edx, dword [ebp - 0x140]
push edx
lea ecx, [ebp - 0x90]
push ecx
call fcn.004c564c
add esp, 0xc
or edi, 0x80
jmp 0x4c940f
movzx edi, byte [esi - 1]
mov eax, dword [ebp - 0x18]
dec eax
jle 0x4c940f
mov edx, dword [ebp - 0x3c]
or edx, edi
mov ecx, dword [ebx + 0x48]
or edx, ecx
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x9c]
test ecx, ecx
jne 0x4c952c
mov eax, dword [ebp - 0x1c]
test eax, eax
jge 0x4c952c
lea edx, [ebp - 0x90]
push edx
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov edx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x80]
mov edx, edi
call fcn.004c6d80
test eax, eax
je 0x4c952c
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
jmp 0x4c952c
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1e
jne 0x4c94d3
mov dword [ebp - 0x14], 0xd
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [ecx + 1]
jne 0x4c952c
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x4c952c
push 0
mov edx, edi
mov ecx, dword [ebp - 0x68]
mov eax, 0x1e
inc ecx
push ecx
mov ecx, dword [ebp - 0x48]
push ecx
push ebx
mov ecx, dword [ebp - 0x80]
call fcn.004c6d80
test eax, eax
je 0x4c952c
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
jmp 0x4c952c
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x17
jge 0x4c9799
mov dword [ebp - 0x14], 0x1a
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [ecx]
jne 0x4c952c
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x4c952c
push 0
mov eax, edi
mov ecx, dword [ebp - 0x68]
inc ecx
xor edx, edx
push ecx
mov ecx, dword [ebp - 0x48]
push ecx
push ebx
mov ecx, dword [ebp - 0x80]
call fcn.004c6d80
test eax, eax
je 0x4c952c
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x9c], 1
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x10
je 0x4c9544
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0xf
jne 0x4c9562
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx + 1]
mov dword [ebp - 0x148], ecx
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [ebp - 0x14c], edx
jmp 0x4c9571
or ecx, 0xffffffff
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], esi
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4ca04e
mov edx, dword [ebp - 0x1c]
dec edx
je 0x4c958f
or dword [ebx + 0x44], 1
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4c95e4
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x4c95b0
mov dl, byte [ebp - 0x10]
add dl, 0x1f
mov byte [esi], dl
inc esi
jmp 0x4c9743
mov ecx, dword [ebp - 0x1c]
dec ecx
jne 0x4c95c3
mov al, byte [ebp - 0x10]
add al, 0x23
mov byte [esi], al
inc esi
jmp 0x4c9743
mov dl, byte [ebp - 0x10]
add dl, 0x25
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x1c]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x1c]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x4c9743
mov edx, dword [ebp - 0x18]
dec edx
jne 0x4c9633
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x4c95fd
mov al, byte [ebp - 0x10]
add al, 0x21
mov byte [esi], al
inc esi
jmp 0x4c9743
mov esi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
dec eax
je 0x4ca04e
mov dl, byte [ebp - 0x10]
add dl, 0x25
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x1c]
dec ecx
sar ecx, 8
mov byte [esi], cl
mov cl, byte [ebp - 0x1c]
add cl, 0xff
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
jmp 0x4c9743
mov al, byte [ebp - 0x14]
add al, 0x27
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x18]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x18]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x1c]
test eax, eax
jge 0x4c96b2
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4c9684
cmp edi, 0x80
jl 0x4c9684
mov ecx, edi
lea eax, [ebp - 0x90]
and ecx, 7
push ecx
push eax
push esi
call fcn.004c564c
add esp, 0xc
mov edx, edi
and edx, 7
add esi, edx
jmp 0x4c96a5
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x4c96a5
mov dl, byte [ebp - 0x148]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x14c]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x10]
add al, 0x1f
mov byte [esi], al
inc esi
jmp 0x4c9743
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp edx, eax
je 0x4c9743
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4c96ee
cmp edi, 0x80
jl 0x4c96ee
mov ecx, edi
and ecx, 7
push ecx
lea ecx, [ebp - 0x90]
push ecx
push esi
call fcn.004c564c
add esp, 0xc
mov eax, edi
and eax, 7
add esi, eax
jmp 0x4c96f3
mov edx, edi
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x148]
test ecx, ecx
jl 0x4c970f
mov al, byte [ebp - 0x148]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x14c]
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sub dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
dec eax
jne 0x4c9726
mov dl, byte [ebp - 0x10]
add dl, 0x23
mov byte [esi], dl
inc esi
jmp 0x4c9743
mov cl, byte [ebp - 0x10]
add cl, 0x25
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4c976f
cmp edi, 0x80
jl 0x4c976f
mov eax, edi
lea edx, [ebp - 0x90]
and eax, 7
push eax
push edx
push esi
call fcn.004c564c
add esp, 0xc
and edi, 7
add esi, edi
jmp 0x4c9774
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x4c9e6c
mov dl, byte [ebp - 0x148]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x14c]
mov byte [esi], cl
inc esi
jmp 0x4c9e6c
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x4e
je 0x4c97cd
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x4f
je 0x4c97cd
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x50
je 0x4c97cd
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x51
jne 0x4c9875
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x4c97dc
mov esi, dword [ebp - 0x70]
jmp 0x4ca04e
mov eax, dword [ebp - 0x1c]
dec eax
je 0x4c97e6
or dword [ebx + 0x44], 1
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x4c9801
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x4c9801
mov cl, byte [ebp - 0x10]
add cl, 0x46
mov byte [esi], cl
inc esi
jmp 0x4c9e6c
mov eax, dword [ebp - 0x18]
dec eax
jne 0x4c981b
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x4c981b
mov cl, byte [ebp - 0x10]
add cl, 0x48
mov byte [esi], cl
inc esi
jmp 0x4c9e6c
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x4c9836
mov edx, dword [ebp - 0x1c]
dec edx
jne 0x4c9836
mov cl, byte [ebp - 0x10]
add cl, 0x4a
mov byte [esi], cl
inc esi
jmp 0x4c9e6c
mov al, byte [ebp - 0x10]
add al, 0x4c
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x18]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x18]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x4c985d
xor edx, edx
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x1c]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x4c9e6c
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5e
je 0x4c98a9
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5f
je 0x4c98a9
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5d
je 0x4c98a9
mov edx, dword [ebp - 0x70]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x60
jne 0x4c9e4e
xor eax, eax
xor edx, edx
mov dword [ebp - 0x154], eax
mov edi, esi
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x70]
sub edi, eax
movzx ecx, byte [ecx]
cmp ecx, 0x60
jne 0x4c98e6
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0x66
jne 0x4c98e6
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x37
jmp 0x4cb88f
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x4c9934
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x15c]
xor eax, eax
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
or eax, edx
add dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x15c]
mov cl, byte [eax]
cmp ecx, 0x55
jne 0x4c98f5
mov ecx, esi
mov eax, dword [ebp - 0x15c]
sub ecx, eax
mov dword [ebp - 0x154], ecx
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x4c9a2b
mov ecx, dword [ebp - 0x1c]
dec ecx
jg 0x4c9994
mov byte [esi], 0
push ebx
mov eax, dword [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x80]
mov edx, 1
mov eax, dword [ebp - 0x70]
call fcn.004c6bdc
push edi
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x70]
inc eax
push eax
call fcn.004c5668
add esp, 0xc
inc esi
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x4c9982
mov ecx, dword [ebp - 0x70]
mov byte [ecx], 0x6f
jmp 0x4ca04e
mov edx, dword [ebp - 0x70]
mov al, byte [ebp - 0x10]
add al, 0x67
mov byte [edx], al
inc dword [ebp - 0x70]
jmp 0x4c9a23
mov byte [esi], 0
push ebx
mov ecx, dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x80]
mov edx, 4
mov eax, dword [ebp - 0x70]
call fcn.004c6bdc
push edi
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x70]
add eax, 4
push eax
call fcn.004c5668
mov eax, dword [ebp - 0x70]
mov dl, byte [ebp - 0x10]
add dl, 0x67
add esp, 0xc
mov byte [eax], dl
add esi, 4
inc dword [ebp - 0x70]
mov edx, dword [ebp - 0x70]
mov byte [edx], 0x5e
inc dword [ebp - 0x70]
mov ecx, dword [ebp - 0x158]
test ecx, ecx
jne 0x4c99e8
xor ecx, ecx
jmp 0x4c99f3
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x158]
sub ecx, eax
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x70]
sar ecx, 8
mov byte [eax], cl
mov eax, dword [ebp - 0x70]
mov dl, byte [ebp - 0x160]
and dl, 0xff
mov byte [eax + 1], dl
add dword [ebp - 0x70], 2
dec dword [ebp - 0x1c]
jmp 0x4c9b66
mov edx, dword [ebp - 0x18]
dec edx
jle 0x4c9b59
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4c9aa4
mov ecx, dword [ebp - 0x18]
dec ecx
imul ecx, dword [ebp - 0x50]
mov dword [ebp - 0x164], ecx
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x220], eax
fild dword [ebp - 0x220]
fild dword [ebp - 0x50]
fmulp st(1)
fld qword [0x4cb8a4]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x4c9a86
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x164]
cmp ecx, edx
jge 0x4c9a94
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x4cb88f
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x164]
add dword [ecx], eax
jmp 0x4c9b59
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x4c9ab8
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jge 0x4c9ab8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x150], 1
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cmp edx, eax
jge 0x4c9b59
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x168], edx
push edi
mov ecx, dword [ebp - 0x70]
push ecx
push esi
call fcn.004c564c
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x168]
cmp eax, edx
jae 0x4c9b37
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebx + 0x20]
add ecx, edi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
add eax, 2
mov ecx, dword [ebp - 0x168]
cmp eax, ecx
jb 0x4c9af7
mov eax, dword [ebp - 0x168]
add esi, edi
mov dword [ebp - 0x78], eax
inc dword [ebp - 0x150]
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jl 0x4c9ad3
mov edx, dword [ebp - 0x1c]
test edx, edx
jle 0x4c9b66
mov ecx, dword [ebp - 0x18]
sub dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
test eax, eax
jl 0x4c9d8c
mov edx, dword [ebp + 8]
test edx, edx
je 0x4c9bed
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jle 0x4c9bed
mov eax, dword [ebp - 0x50]
add eax, 7
imul dword [ebp - 0x1c]
add eax, 0xfffffffa
mov dword [ebp - 0x16c], eax
fild dword [ebp - 0x1c]
mov edx, dword [ebp - 0x50]
add edx, 7
mov dword [ebp - 0x224], edx
fild dword [ebp - 0x224]
fmulp st(1)
fld qword [0x4cb8a4]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x4c9bcf
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov edi, dword [edx]
sub ecx, edi
mov eax, dword [ebp - 0x16c]
cmp ecx, eax
jge 0x4c9bdd
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x4cb88f
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x16c]
add dword [ecx], edi
jmp 0x4c9d07
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x150], eax
mov edx, dword [ebp - 0x150]
test edx, edx
jl 0x4c9d07
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x170], ecx
mov cl, byte [ebp - 0x10]
add cl, 0x67
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x4c9c63
mov byte [esi], 0x5e
inc esi
mov edx, dword [ebp - 0x158]
test edx, edx
jne 0x4c9c33
xor ecx, ecx
jmp 0x4c9c3d
mov ecx, esi
mov eax, dword [ebp - 0x158]
sub ecx, eax
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x158], esi
mov edx, dword [ebp - 0x174]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x174]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
push edi
mov eax, dword [ebp - 0x70]
push eax
push esi
call fcn.004c564c
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x170]
cmp eax, edx
jae 0x4c9ce8
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x150]
add ecx, edi
test edx, edx
je 0x4c9c9f
mov edx, 4
jmp 0x4c9ca4
mov edx, 1
add ecx, edx
mov edx, dword [ebx + 0x20]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebp - 0x150]
test edx, edx
je 0x4c9cca
mov dl, 4
jmp 0x4c9ccc
mov dl, 1
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
add eax, 2
mov ecx, dword [ebp - 0x170]
cmp eax, ecx
jb 0x4c9c7e
mov eax, dword [ebp - 0x170]
add esi, edi
mov dword [ebp - 0x78], eax
dec dword [ebp - 0x150]
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jge 0x4c9c05
mov eax, dword [ebp - 0x158]
test eax, eax
je 0x4c9e6c
mov eax, esi
mov edx, dword [ebp - 0x158]
sub eax, edx
inc eax
mov edx, esi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx edi, byte [edx + 2]
or ecx, edi
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x178]
test ecx, ecx
jne 0x4c9d46
xor ecx, ecx
jmp 0x4c9d54
mov ecx, dword [ebp - 0x158]
mov edi, dword [ebp - 0x178]
sub ecx, edi
mov dword [ebp - 0x158], ecx
mov byte [esi], 0x55
inc esi
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, eax
and cl, 0xff
mov byte [esi + 1], cl
mov ecx, eax
sar ecx, 8
add esi, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
mov eax, dword [ebp - 0x158]
test eax, eax
jne 0x4c9d15
jmp 0x4c9e6c
mov eax, dword [ebp - 0x154]
mov edx, esi
sub edx, eax
xor ecx, ecx
mov dword [ebp - 0x17c], edx
xor eax, eax
mov edx, dword [ebp - 0x17c]
mov edi, dword [ebp - 0x17c]
mov cl, byte [edx + 1]
mov al, byte [edi + 2]
shl ecx, 8
mov edx, dword [ebp - 0x17c]
or ecx, eax
sub edx, ecx
mov dword [ebp - 0x180], edx
mov edi, dword [ebp - 0x17c]
mov cl, byte [ebp - 0x10]
add cl, 0x56
mov byte [edi], cl
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4c9e6c
mov edx, dword [ebp - 0x180]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5d
je 0x4c9e6c
mov ecx, dword [ebp - 0x180]
mov dword [ebp - 0x184], ecx
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x184]
call fcn.004c6864
test eax, eax
je 0x4c9e1c
mov ecx, dword [ebp - 0x180]
add byte [ecx], 3
jmp 0x4c9e6c
mov eax, dword [ebp - 0x184]
xor edx, edx
mov dl, byte [eax + 1]
shl edx, 8
mov eax, dword [ebp - 0x184]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
add dword [ebp - 0x184], edx
mov edx, dword [ebp - 0x184]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x54
je 0x4c9df9
jmp 0x4c9e6c
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x6d
je 0x4ca04e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xb
jmp 0x4cb88f
mov edx, dword [ebp - 0x9c]
test edx, edx
je 0x4ca04e
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx]
cmp ecx, 0x27
je 0x4c9e9d
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x41
je 0x4c9e9d
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x34
jne 0x4c9ee0
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x41
jne 0x4c9eca
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0x10
je 0x4c9ec3
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 3]
cmp eax, 0xf
jne 0x4c9eca
mov edx, 2
jmp 0x4c9ecc
xor edx, edx
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [eax]
xor eax, eax
mov al, byte [ecx + 0x4f55a4]
add edx, eax
add dword [ebp - 0x5c], edx
mov edx, esi
mov ecx, dword [ebp - 0x5c]
sub edx, ecx
mov dword [ebp - 0x188], edx
mov ecx, dword [ebp - 0x188]
test ecx, ecx
jle 0x4ca04e
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
add edx, 0xffffffe1
cmp edx, 0x20
ja case.0x4c9f14.31
mov dl, byte [edx + 0x4c9f1b]
jmp dword [edx*4 + 0x4c9f3c]
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x28
jmp 0x4ca04e
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x29
jmp 0x4ca04e
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x2a
jmp 0x4ca04e
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x2b
jmp 0x4ca04e
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x42
jmp 0x4ca04e
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x43
jmp 0x4ca04e
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x44
jmp 0x4ca04e
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x45
jmp 0x4ca04e
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x35
jmp 0x4ca04e
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x36
jmp 0x4ca04e
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x37
jmp 0x4ca04e
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x38
jmp 0x4ca04e
mov ecx, dword [ebp - 0x188]
push ecx
mov eax, dword [ebp - 0x5c]
push eax
mov edx, dword [ebp - 0x5c]
add edx, 3
push edx
call fcn.004c5668
add dword [ebp - 0x188], 3
mov ecx, dword [ebp - 0x5c]
add esi, 3
add esp, 0xc
mov byte [ecx], 0x5d
mov byte [esi], 0x55
inc esi
mov eax, dword [ebp - 0x188]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x188]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x5c]
sar ecx, 8
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x5c]
mov dl, byte [ebp - 0x188]
and dl, 0xff
mov byte [eax + 2], dl
xor edx, edx
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x40]
or dword [ebx + 0x48], ecx
jmp 0x4cb887
mov ecx, dword [ebp - 0x48]
xor eax, eax
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x20], 0x5f
mov edx, dword [ebx + 0x20]
xor ecx, ecx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0xa8], ecx
inc dword [ebp - 0x68]
xor edx, edx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp edx, 0x2a
jne 0x4ca1ac
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 2
je 0x4ca1ac
mov dword [ebp - 0x190], str.ACCEPT
inc dword [ebp - 0x68]
xor eax, eax
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x70], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 2
jne 0x4ca0c7
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jne 0x4ca0f4
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3b
jmp 0x4cb88f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x4ca10e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3c
jmp 0x4cb88f
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x194]
sub edx, eax
xor edi, edi
mov dword [ebp - 0x18c], edx
jmp 0x4ca182
mov eax, dword [edi*8 + 0x4f45a8]
mov edx, dword [ebp - 0x18c]
cmp eax, edx
jne 0x4ca173
mov ecx, dword [ebp - 0x18c]
push ecx
mov ecx, dword [ebp - 0x190]
push ecx
mov eax, dword [ebp - 0x194]
push eax
call fcn.004c56a0
add esp, 0xc
test eax, eax
jne 0x4ca173
mov dl, byte [edi*8 + 0x4f45ac]
xor eax, eax
mov byte [esi], dl
mov cl, byte [esi]
inc esi
mov al, cl
cmp eax, 0x6e
jne 0x4ca18c
mov dword [ebx + 0x4c], 1
jmp 0x4ca18c
mov edx, dword [edi*8 + 0x4f45a8]
inc edx
add dword [ebp - 0x190], edx
inc edi
mov ecx, dword [0x4f45e0]
cmp edi, ecx
jl 0x4ca123
mov eax, dword [0x4f45e0]
cmp edi, eax
jl 0x4cb887
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x4cb88f
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3f
jne 0x4cb113
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x4ca248
je 0x4ca2d2
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x4ca1dd.34
jmp dword [ecx*4 + 0x4ca1e4]
cmp ecx, 0x43
jg 0x4ca26f
je 0x4ca845
sub ecx, 0x3c
je 0x4ca7d9
dec ecx
je 0x4ca7a2
dec ecx
je 0x4ca836
jmp case.0x4ca1dd.34
sub ecx, 0x50
je 0x4ca8fd
sub ecx, 2
je 0x4cacde
sub ecx, 0x2a
je 0x4ca2c8
jmp case.0x4ca1dd.34
inc dword [ebp - 0x68]
jmp 0x4ca293
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x4ca2a8
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
jne 0x4ca290
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x4cb887
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x12
jmp 0x4cb88f
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x4cb140
mov dword [ebp - 0x20], 0x60
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3f
jne 0x4ca328
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x3d
je 0x4cb140
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x21
je 0x4cb140
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x3c
je 0x4cb140
mov byte [esi + 3], 0x64
mov dword [ebp - 0xc0], 3
mov dword [ebp - 0xbc], 0xffffffff
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x52
jne 0x4ca36e
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x26
jne 0x4ca36e
mov dword [ebp - 0xcc], 0xffffffff
add dword [ebp - 0x68], 2
mov byte [esi + 3], 0x65
jmp 0x4ca3d8
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3c
jne 0x4ca38a
mov dword [ebp - 0xcc], 0x3e
inc dword [ebp - 0x68]
jmp 0x4ca3d8
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x27
jne 0x4ca3a6
mov dword [ebp - 0xcc], 0x27
inc dword [ebp - 0x68]
jmp 0x4ca3d8
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2d
je 0x4ca3c8
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2b
jne 0x4ca3d8
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + edx], 0x10
jne 0x4ca3fa
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1c
jmp 0x4cb88f
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x4ca44e
mov eax, dword [ebp - 0xb8]
test eax, eax
jl 0x4ca44b
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x4f503d], 4
je 0x4ca442
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xb8]
add eax, eax
movzx edx, byte [edx]
lea eax, [eax + eax*4]
add eax, edx
add eax, 0xffffffd0
jmp 0x4ca445
or eax, 0xffffffff
mov dword [ebp - 0xb8], eax
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebx + 0xc]
movzx ecx, byte [ecx]
test byte [eax + ecx], 0x10
jne 0x4ca410
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub edx, eax
mov dword [ebp - 0x1a4], edx
mov edx, dword [ebp - 0xcc]
test edx, edx
jle 0x4ca48b
mov ecx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0xcc]
movzx ecx, byte [ecx]
cmp ecx, eax
jne 0x4ca49a
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x4ca4ab
dec dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1a
jmp 0x4cb88f
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4cb140
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
jle 0x4ca547
mov eax, dword [ebp - 0xb8]
test eax, eax
jg 0x4ca4dc
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x4cb88f
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x4ca4f5
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0xb8]
sub eax, edx
inc eax
jmp 0x4ca500
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x30]
add eax, edx
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jle 0x4ca51d
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jle 0x4ca52b
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4cb88f
mov ecx, dword [ebp - 0xb8]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xb8]
and al, 0xff
mov byte [esi + 5], al
jmp 0x4cb140
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x4ca58d
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1b0]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1ac]
push ecx
call fcn.004c56a0
add esp, 0xc
test eax, eax
je 0x4ca59a
mov eax, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], eax
inc dword [ebp - 0x198]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp edx, eax
jl 0x4ca55a
mov edx, dword [ebp - 0x198]
mov ecx, dword [ebx + 0x28]
cmp edx, ecx
jge 0x4ca5e3
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b0]
xor eax, eax
movzx edx, byte [edx + 1]
mov al, byte [ecx]
shl eax, 8
or eax, edx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x4cb140
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.004c632c
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x4ca628
mov edx, dword [ebp - 0x198]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0x198]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x4cb140
mov ecx, dword [ebp - 0xcc]
test ecx, ecx
je 0x4ca645
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x4cb88f
mov edx, dword [ebp - 0x1ac]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x52
jne 0x4ca711
xor eax, eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x198], 1
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1a4]
cmp edx, eax
jge 0x4ca6dd
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x198]
movzx ecx, byte [edx + ecx]
test byte [ecx + 0x4f503d], 4
jne 0x4ca6a1
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x4cb88f
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0xb8]
movzx edx, byte [edx + eax]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1a4]
cmp ecx, eax
jl 0x4ca67a
mov edx, dword [ebp - 0xb8]
test edx, edx
jne 0x4ca6f1
mov dword [ebp - 0xb8], 0xffff
mov byte [esi + 3], 0x65
mov ecx, dword [ebp - 0xb8]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xb8]
and al, 0xff
mov byte [esi + 5], al
jmp 0x4cb140
mov edx, dword [ebp - 0x1a4]
cmp edx, 6
jne 0x4ca749
push 6
push str.DEFINE
mov ecx, dword [ebp - 0x1ac]
push ecx
call fcn.004c56a0
add esp, 0xc
test eax, eax
jne 0x4ca749
mov byte [esi + 3], 0x66
mov dword [ebp - 0xc0], 1
jmp 0x4cb140
mov eax, dword [ebp - 0xb8]
test eax, eax
jle 0x4ca77d
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp edx, eax
jg 0x4ca77d
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x4cb140
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x4ca78e
mov edx, 0x23
jmp 0x4ca793
mov edx, 0xf
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x4cb88f
mov dword [ebp - 0x20], 0x58
inc dword [ebp - 0x68]
jmp 0x4cb140
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx]
cmp ecx, 0x29
jne 0x4ca7cd
mov byte [esi], 0x6d
inc esi
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x4cb887
mov dword [ebp - 0x20], 0x59
jmp 0x4cb140
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x4ca7fb
sub cl, 0x1c
je 0x4ca7eb
jmp 0x4ca80b
mov dword [ebp - 0x20], 0x5a
add dword [ebp - 0x68], 2
jmp 0x4cb140
mov dword [ebp - 0x20], 0x5b
add dword [ebp - 0x68], 2
jmp 0x4cb140
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + edx], 0x10
jne case.0x4ca1dd.39
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x18
jmp 0x4cb88f
mov dword [ebp - 0x20], 0x5d
inc dword [ebp - 0x68]
jmp 0x4cb140
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x4c], 1
mov byte [esi], 0x53
inc esi
xor ecx, ecx
mov dword [ebp - 0x1b4], ecx
jmp 0x4ca87a
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x68]
add ecx, ecx
xor edx, edx
mov dl, byte [eax]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0x1b4], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x4f503d], 4
jne 0x4ca85d
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x4ca8a7
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x27
jmp 0x4cb88f
mov edx, dword [ebp - 0x1b4]
cmp edx, 0xff
jle 0x4ca8c3
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x26
jmp 0x4cb88f
mov dl, byte [ebp - 0x1b4]
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x68]
mov edi, dword [ebx + 0x18]
sub ecx, edi
inc ecx
sar ecx, 8
mov byte [esi], cl
mov eax, dword [ebp - 0x68]
mov edx, dword [ebx + 0x18]
sub eax, edx
inc eax
and al, 0xff
mov byte [esi + 1], al
mov byte [esi + 2], 0
mov byte [esi + 3], 0
add esi, 4
xor ecx, ecx
mov dword [ebp - 0x70], ecx
jmp 0x4cb887
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3d
je 0x4ca918
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3e
jne 0x4ca93f
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3e
sete cl
and ecx, 1
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xcc], 0x29
jmp 0x4cab69
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
je case.0x4ca1dd.39
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x29
jmp 0x4cb88f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x4ca96c
mov ecx, 0x3e
jmp 0x4ca971
mov ecx, 0x27
mov dword [ebp - 0xcc], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
jmp 0x4ca988
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x4ca985
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub edx, eax
mov dword [ebp - 0x1a4], edx
mov edx, dword [ebp + 8]
test edx, edx
je 0x4caa29
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xcc]
movzx ecx, byte [ecx]
cmp ecx, eax
je 0x4ca9ce
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2a
jmp 0x4cb88f
mov ecx, dword [ebx + 0x28]
cmp ecx, 0x2710
jl 0x4ca9e7
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x31
jmp 0x4cb88f
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov eax, dword [ebx + 0x2c]
cmp edx, eax
jle 0x4cab4a
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov dword [ebx + 0x2c], edx
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x4cab4a
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x4cb88f
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x4caae9
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1b0]
add eax, 2
push eax
mov edx, dword [ebp - 0x1ac]
push edx
call fcn.004c56b4
add esp, 0xc
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
jne 0x4caaa3
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1a4]
mov cl, byte [eax + edx + 2]
test cl, cl
jne 0x4caa99
test byte [ebp - 0x46], 8
jne 0x4caaa3
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x2b
jmp 0x4cb88f
mov dword [ebp - 0x1b8], 0xffffffff
mov edx, dword [ebp - 0x1b8]
test edx, edx
jge 0x4caada
mov ecx, dword [ebx + 0x28]
mov eax, dword [ebp - 0x198]
sub ecx, eax
imul ecx, dword [ebx + 0x2c]
push ecx
mov edx, dword [ebp - 0x1b0]
push edx
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebx + 0x2c]
add ecx, eax
push ecx
call fcn.004c5668
add esp, 0xc
jmp 0x4caafa
mov edx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], edx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jl 0x4caa3f
mov edx, dword [ebx + 0x30]
mov eax, dword [ebp - 0x1b0]
inc edx
sar edx, 8
mov byte [eax], dl
mov dl, byte [ebx + 0x30]
mov ecx, dword [ebp - 0x1b0]
inc edx
and dl, 0xff
mov byte [ecx + 1], dl
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1ac]
push eax
mov edx, dword [ebp - 0x1b0]
add edx, 2
push edx
call fcn.004c564c
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
add esp, 0xc
mov byte [ecx + eax + 2], 0
inc dword [ebp - 0x68]
inc dword [ebx + 0x28]
jmp 0x4cb122
mov dword [ebp - 0xcc], 0x29
mov dword [ebp - 0xa4], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], edx
jmp 0x4cab7a
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x4cab77
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub ecx, eax
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp + 8]
test edx, edx
je 0x4cabff
mov ecx, dword [ebp - 0x1a4]
test ecx, ecx
jne 0x4cabba
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3e
jmp 0x4cb88f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x4cabd9
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2a
jmp 0x4cb88f
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x4cabf2
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x4cb88f
xor edx, edx
mov dword [ebp - 0xb8], edx
jmp 0x4caccb
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], ecx
xor eax, eax
mov dword [ebp - 0x198], eax
jmp 0x4cac59
mov edx, dword [ebp - 0x1a4]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
mov eax, dword [ebp - 0x1ac]
push eax
call fcn.004c56a0
add esp, 0xc
test eax, eax
jne 0x4cac4a
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
mov dl, byte [edx + eax + 2]
test dl, dl
je 0x4cac66
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jl 0x4cac12
mov edx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp edx, eax
jge 0x4cac95
mov edx, dword [ebp - 0x1b0]
mov edi, dword [ebp - 0x1b0]
xor ecx, ecx
xor eax, eax
mov cl, byte [edx]
mov al, byte [edi + 1]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xb8], ecx
jmp 0x4caccb
test byte [ebp - 0x48], 8
setne dl
and edx, 1
push edx
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.004c632c
mov dword [ebp - 0xb8], eax
test eax, eax
jg 0x4caccb
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4cb88f
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
jne 0x4cae16
jmp 0x4cb607
inc dword [ebp - 0x68]
mov dword [ebp - 0xcc], 0x29
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xbc], eax
cmp eax, 0x2b
jne 0x4cad20
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x4f503d], 4
jne 0x4cad42
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3f
jmp 0x4cb88f
mov edx, dword [ebp - 0xbc]
cmp edx, 0x2d
jne 0x4cad42
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
test byte [ecx + 0x4f503d], 4
je case.0x4ca1dd.34
inc dword [ebp - 0x68]
xor eax, eax
mov dword [ebp - 0xb8], eax
jmp 0x4cad6c
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x68]
add edx, edx
xor ecx, ecx
mov cl, byte [eax]
lea edx, [edx + edx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x4f503d], 4
jne 0x4cad4c
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ebp - 0xcc]
cmp edx, eax
je 0x4cad9b
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1d
jmp 0x4cb88f
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x4cadea
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jne 0x4cadbe
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3a
jmp 0x4cb88f
mov edx, dword [ebx + 0x30]
mov eax, dword [ebp - 0xb8]
sub edx, eax
inc edx
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xb8]
test edx, edx
jg 0x4cae16
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x4cb88f
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2b
jne 0x4cae16
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x4cae0d
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x4cb88f
mov ecx, dword [ebx + 0x30]
add dword [ebp - 0xb8], ecx
mov dword [ebp - 0x70], esi
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4caf01
mov byte [esi], 0
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
je 0x4cae51
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebx + 0x14]
call fcn.004c66d0
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
test ecx, ecx
jne 0x4caebf
test byte [ebp - 0x48], 8
setne al
and eax, 1
xor edx, edx
push eax
mov eax, ebx
mov ecx, dword [ebp - 0xb8]
call fcn.004c632c
test eax, eax
jge 0x4cae87
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x4cb88f
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0xb8]
add edx, ecx
lea ecx, [esi + 4]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x20]
sub ecx, eax
sar ecx, 8
mov byte [edx], cl
lea ecx, [esi + 4]
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x20]
sub ecx, eax
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
jmp 0x4caf01
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1bc]
xor eax, eax
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
shl eax, 8
or eax, edx
jne 0x4caf01
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov eax, dword [ebp - 0x1bc]
call fcn.004c6afc
test eax, eax
je 0x4caf01
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x28
jmp 0x4cb88f
mov byte [esi], 0x5d
mov byte [esi + 1], 0
mov byte [esi + 2], 6
add esi, 3
mov byte [esi], 0x52
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ebx + 0x14]
sub ecx, eax
sar ecx, 8
mov byte [esi + 1], cl
mov edx, dword [ebp - 0x1bc]
mov eax, dword [ebx + 0x14]
sub edx, eax
and dl, 0xff
mov byte [esi + 2], dl
add esi, 3
mov byte [esi], 0x55
mov byte [esi + 1], 0
mov byte [esi + 2], 6
mov dword [ebp - 0x50], 9
add esi, 3
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4cb887
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4cb887
xor ecx, ecx
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1a8], eax
jmp 0x4cb031
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x69
jg 0x4cafaa
je 0x4cafdb
sub ecx, 0x2d
je 0x4cafbb
sub ecx, 0x1d
je 0x4cafc9
sub ecx, 0xb
je 0x4cb007
sub ecx, 3
je 0x4cb015
jmp 0x4cb020
sub ecx, 0x6d
je 0x4cafe6
sub ecx, 6
je 0x4caff1
sub ecx, 5
je 0x4caffc
jmp 0x4cb020
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x1a8], eax
jmp 0x4cb031
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x4cb031
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 1
jmp 0x4cb031
mov eax, dword [ebp - 0x1a8]
or dword [eax], 2
jmp 0x4cb031
mov edx, dword [ebp - 0x1a8]
or dword [edx], 4
jmp 0x4cb031
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 8
jmp 0x4cb031
mov eax, dword [ebp - 0x1a8]
or dword [eax], 0x200
jmp 0x4cb031
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x40
jmp 0x4cb031
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xc
dec dword [ebp - 0x68]
jmp 0x4cb88f
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x4cb04d
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3a
jne 0x4caf83
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x19c]
or edx, eax
mov ecx, dword [ebp - 0x1a0]
not ecx
and edx, ecx
mov dword [ebp - 0xb4], edx
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x4cb107
mov eax, dword [ebx + 0x14]
add eax, 3
cmp esi, eax
jne 0x4cb09e
mov edx, dword [ebp + 8]
test edx, edx
je 0x4cb093
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
cmp eax, 6
jne 0x4cb09e
mov edx, dword [ebp - 0xb4]
mov dword [ebx + 0x40], edx
jmp 0x4cb0ef
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
and eax, 7
and ecx, 7
cmp ecx, eax
je 0x4cb0c1
mov byte [esi], 0x19
inc esi
mov dl, byte [ebp - 0xb4]
and dl, 7
mov byte [esi], dl
inc esi
test byte [ebp - 0xb3], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
test byte [ebp - 0xb4], 1
je 0x4cb0ea
mov edx, pe_nt_image_headers32
jmp 0x4cb0ec
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 4]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x70], ecx
jmp 0x4cb887
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x4cb140
test byte [ebp - 0x47], 0x10
je 0x4cb122
mov dword [ebp - 0x20], 0x5e
jmp 0x4cb140
inc dword [ebx + 0x30]
mov ecx, dword [ebx + 0x30]
sar ecx, 8
mov byte [esi + 3], cl
mov al, byte [ebx + 0x30]
and al, 0xff
mov byte [esi + 4], al
mov dword [ebp - 0xc0], 2
mov edx, dword [ebp - 0x20]
cmp edx, 0x5d
jl 0x4cb14c
mov ecx, esi
jmp 0x4cb14e
xor ecx, ecx
mov dword [ebp - 0x70], ecx
xor ecx, ecx
mov al, byte [ebp - 0x20]
mov byte [esi], al
mov dword [ebp - 0x5c], esi
mov edx, dword [ebx + 0x48]
lea eax, [ebp - 0x68]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x50], ecx
push eax
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x5a
je 0x4cb180
mov eax, dword [ebp - 0x20]
cmp eax, 0x5b
je 0x4cb180
xor edx, edx
jmp 0x4cb185
mov edx, 1
push edx
lea edx, [ebp - 0xc8]
mov ecx, dword [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0xc4]
mov eax, dword [ebp - 0xc0]
push eax
push edx
push ecx
mov eax, dword [ebp + 0x10]
push eax
push ebx
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4cb1b2
xor ecx, ecx
jmp 0x4cb1b5
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
and edx, 7
call fcn.004cb8ac
test eax, eax
je 0x4cb88f
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x60
jne 0x4cb287
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4cb287
mov dword [ebp - 0x1c0], esi
xor edx, edx
mov dword [ebp - 0x1c4], edx
inc dword [ebp - 0x1c4]
xor eax, eax
mov edx, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1c0]
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
shl eax, 8
or eax, edx
add dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x1c0]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x55
jne 0x4cb1f7
xor ecx, ecx
mov cl, byte [esi + 3]
cmp ecx, 0x66
jne 0x4cb256
mov eax, dword [ebp - 0x1c4]
dec eax
jle 0x4cb24d
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x36
jmp 0x4cb88f
mov dword [ebp - 0x20], 0x66
jmp 0x4cb287
mov ecx, dword [ebp - 0x1c4]
cmp ecx, 2
jle 0x4cb26f
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1b
jmp 0x4cb88f
mov edx, dword [ebp - 0x1c4]
dec edx
jne 0x4cb287
or ecx, 0xffffffff
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc8], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
je 0x4cb2a1
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xe
jmp 0x4cb88f
mov edx, dword [ebp + 8]
test edx, edx
je 0x4cb2f8
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
mov edi, 0x7fffffeb
add edx, 0xfffffffa
mov eax, dword [ecx]
sub edi, eax
cmp edi, edx
jge 0x4cb2cc
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x4cb88f
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffffa
add dword [eax], ecx
mov byte [esi], 0x5e
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
mov byte [esi], 0x55
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
jmp 0x4cb887
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
cmp eax, 0x66
je 0x4cb887
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp - 0x20]
cmp eax, 0x5d
jl 0x4cb395
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4cb354
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jl 0x4cb344
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x64], 1
jmp 0x4cb34b
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x4cb379
mov edx, dword [ebp - 0xc8]
test edx, edx
jl 0x4cb379
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jge 0x4cb379
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x44]
or eax, edx
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jl 0x4cb887
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x30], eax
jmp 0x4cb887
mov edx, dword [ebp - 0x20]
cmp edx, 0x58
jne 0x4cb887
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jl 0x4cb887
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x30], eax
jmp 0x4cb887
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x48]
push ecx
push 0
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.004c58ec
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4cb88f
test edi, edi
jge 0x4cb714
mov ecx, edi
neg ecx
cmp ecx, 0x1a
jne 0x4cb426
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x5c
jne 0x4cb41a
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x45
jne 0x4cb41a
add dword [ebp - 0x68], 2
jmp 0x4cb887
mov dword [ebp - 0x60], 1
jmp 0x4cb887
mov eax, edi
neg eax
cmp eax, 0x19
je 0x4cb887
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4cb454
mov ecx, edi
neg ecx
cmp ecx, 5
jle 0x4cb454
mov eax, edi
neg eax
cmp eax, 0x17
jge 0x4cb454
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov eax, edi
neg eax
mov dword [ebp - 0x38], edx
cmp eax, 0x1b
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
jne 0x4cb583
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x78], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
jne 0x4cb489
mov edx, 0x3e
jmp 0x4cb48e
mov edx, 0x27
mov dword [ebp - 0xcc], edx
xor eax, eax
mov dword [ebp - 0xc0], eax
xor ecx, ecx
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2b
je 0x4cb549
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2d
je 0x4cb549
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x4cb4f9
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x4cb4eb
xor edx, edx
mov dword [ebp - 0x1c8], edx
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
je 0x4cb50d
inc eax
mov dl, byte [eax]
test dl, dl
je 0x4cb50d
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0xcc]
cmp ecx, edx
jne 0x4cb4d6
movzx eax, byte [eax]
mov ecx, dword [ebp - 0xcc]
cmp eax, ecx
je 0x4cb528
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x39
jmp 0x4cb887
mov eax, dword [ebp - 0x1c8]
test eax, eax
je 0x4cb53a
inc dword [ebp - 0x68]
jmp 0x4caceb
mov dword [ebp - 0xa4], 1
jmp 0x4cab69
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x4cb552
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x4f503d], 4
jne 0x4cb551
xor ecx, ecx
mov cl, byte [eax]
mov edi, dword [ebp - 0xcc]
cmp ecx, edi
je 0x4cb57b
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x4cb887
inc dword [ebp - 0x68]
jmp 0x4caceb
mov edx, edi
neg edx
cmp edx, 0x1c
jne 0x4cb5f3
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x3c
je 0x4cb5b2
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x27
je 0x4cb5b2
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x7b
jne 0x4cb5f3
xor edx, edx
mov dword [ebp - 0xa4], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
jne 0x4cb5d0
mov edx, 0x3e
jmp 0x4cb5e8
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x27
jne 0x4cb5e3
mov edx, 0x27
jmp 0x4cb5e8
mov edx, 0x7d
mov dword [ebp - 0xcc], edx
jmp 0x4cab69
mov eax, edi
neg eax
cmp eax, 0x1d
jl 0x4cb677
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xb8], edi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4cb616
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x70], esi
mov byte [esi], 0x51
inc esi
mov ecx, dword [ebp - 0xb8]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0xb8]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0xb8]
cmp edx, 0x20
jge 0x4cb650
mov ecx, dword [ebp - 0xb8]
mov eax, 1
shl eax, cl
jmp 0x4cb655
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x38]
cmp edx, ecx
jle 0x4cb887
mov ecx, dword [ebp - 0xb8]
mov dword [ebx + 0x38], ecx
jmp 0x4cb887
mov eax, edi
neg eax
cmp eax, 0xf
je 0x4cb689
mov edx, edi
neg edx
cmp edx, 0x10
jne 0x4cb6ed
mov ecx, dword [ebp + 0x1c]
lea edx, [ebp - 0x1cc]
push ecx
lea ecx, [ebp - 0x1d0]
lea eax, [ebp - 0x68]
call fcn.004c5ce8
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x1d4]
test ecx, ecx
jl 0x4cb88f
neg edi
cmp edi, 0x10
mov dword [ebp - 0x70], esi
sete al
and eax, 1
mov edx, dword [ebp - 0x1cc]
cmp eax, edx
je 0x4cb6d1
mov cl, 0x10
jmp 0x4cb6d3
mov cl, 0xf
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x1d4]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x1d0]
mov byte [esi], dl
inc esi
jmp 0x4cb887
mov ecx, edi
neg ecx
cmp ecx, 5
jle 0x4cb703
mov eax, edi
neg eax
cmp eax, 0x17
jge 0x4cb703
mov edx, esi
jmp 0x4cb705
xor edx, edx
mov dword [ebp - 0x70], edx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x4cb887
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4cb735
cmp edi, 0x7f
jle 0x4cb735
lea edx, [ebp - 0xd8]
mov eax, edi
call fcn.004d68f8
mov dword [ebp - 0xd0], eax
jmp 0x4cb79d
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x4cb79d
mov dword [ebp - 0xd0], 1
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4cb79d
cmp edi, 0xc0
jl 0x4cb79d
jmp 0x4cb787
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xd0]
mov cl, byte [edx]
mov byte [ebp + eax - 0xd8], cl
inc dword [ebp - 0xd0]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
and ecx, 0xc0
cmp ecx, 0x80
je 0x4cb76c
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 1
je 0x4cb7aa
mov al, 0x1d
jmp 0x4cb7ac
mov al, 0x1c
mov byte [esi], al
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x1dc], eax
inc esi
mov edx, dword [ebp - 0xd0]
xor edi, edi
cmp edi, edx
jge 0x4cb7e3
mov ecx, dword [ebp - 0x1dc]
mov cl, byte [ecx]
mov byte [esi], cl
inc esi
inc edi
inc dword [ebp - 0x1dc]
mov eax, dword [ebp - 0xd0]
cmp edi, eax
jl 0x4cb7c7
xor edx, edx
mov dl, byte [ebp - 0xd8]
cmp edx, 0xd
je 0x4cb7fd
xor ecx, ecx
mov cl, byte [ebp - 0xd8]
cmp ecx, 0xa
jne 0x4cb801
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x4cb859
mov dword [ebp - 0x38], 0xffffffff
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0xd0]
dec ecx
je 0x4cb826
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x4cb84e
xor edx, edx
mov dl, byte [ebp - 0xd8]
mov eax, dword [ebp - 0x3c]
or edx, eax
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0xd0]
dec edx
je 0x4cb887
xor ecx, ecx
mov cl, byte [esi - 1]
mov edi, dword [ebx + 0x48]
or ecx, edi
mov dword [ebp - 0x30], ecx
jmp 0x4cb887
or eax, 0xffffffff
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
jmp 0x4cb887
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0xd0]
dec ecx
je 0x4cb875
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x4cb887
xor edx, edx
mov dl, byte [esi - 1]
mov eax, dword [ebp - 0x3c]
or edx, eax
mov ecx, dword [ebx + 0x48]
or edx, ecx
mov dword [ebp - 0x30], edx
inc dword [ebp - 0x68]
jmp 0x4c78ff
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [edx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18