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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
push ebx
push esi
push edi
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
xor esi, esi
xor ebx, ebx
mov eax, esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x60], eax
inc ebx
mov dword [ebp - 0x54], eax
mov eax, dword [edx + 0x80]
mov dword [ebp - 0x78], eax
mov eax, dword [edx]
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x6c], esi
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x74], eax
mov eax, ecx
shr eax, 0x13
and eax, ebx
mov dword [ebp - 8], esi
mov dword [ebp - 0x38], eax
mov ebx, ecx
xor eax, eax
shr ebx, 2
inc eax
mov dword [ebp - 0x5c], esi
and ebx, eax
mov dword [ebp - 0x58], esi
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x80], esi
mov esi, eax
and esi, 8
mov dword [ebp - 0x68], ebx
mov ebx, dword [edx + 0x20]
and eax, 4
mov dword [ebp - 4], ebx
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x9c], eax
mov edi, dword [edx + 0x7c]
mov dword [ebp + 0xc], edi
test esi, esi
je 0x54dec2
mov dword [edi], 0x80090000
jmp 0x54decc
test eax, eax
je 0x54dedc
mov dword [edi], 0x80180005
push 4
pop eax
add edi, eax
mov dword [edi], 0x801a0000
add edi, eax
mov dword [ebp + 0xc], edi
test ecx, 0x2000000
je 0x54e040
mov esi, dword [ebp + 8]
cmp esi, ebx
jae 0x55066a
cmp edi, dword [ebp - 0x78]
jae 0x5506b6
cmp dword [ebp - 0x38], 0
mov edx, esi
movzx ebx, byte [esi]
lea esi, [edx + 1]
mov eax, esi
mov edi, esi
je 0x54e002
cmp ebx, 0xc0
jb 0x54e002
test bl, 0x20
jne 0x54df37
movzx eax, byte [esi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
inc esi
jmp 0x54dffe
movzx ecx, byte [esi]
test bl, 0x10
jne 0x54df5e
movzx eax, byte [esi + 1]
and ebx, 0xf
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 2
jmp 0x54dffe
test bl, 8
jne 0x54df8b
movzx eax, byte [esi + 1]
and ebx, 7
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x54dffe
push 4
pop eax
push 0x3f
pop edi
and ecx, edi
test al, bl
jne 0x54dfc5
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, edi
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edi
or ebx, eax
add esi, 4
jmp 0x54dffe
xor eax, eax
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, edi
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edi
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, edi
or ebx, eax
add esi, 5
mov eax, esi
mov edi, eax
mov ecx, dword [ebp - 0x68]
test ecx, ecx
je 0x54e022
push dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push dword [ebp + 0xc]
push ecx
push eax
push edx
call fcn.0054ddbf
mov dword [ebp + 0xc], eax
add esp, 0x14
mov eax, edi
mov edi, dword [ebp + 0xc]
push 4
mov dword [edi], ebx
pop ebx
add edi, ebx
mov dword [ebp + 0xc], edi
cmp eax, dword [ebp - 4]
jb 0x54def3
mov edx, dword [ebp + 0x14]
jmp 0x55066d
mov esi, dword [edx + 0x28]
xor eax, eax
mov dword [ebp - 0x30], eax
xor edx, edx
mov eax, esi
mov dword [ebp - 0x40], 0xc
div dword [ebp - 0x40]
sub esi, edx
mov edx, dword [ebp + 0x14]
add esi, dword [edx + 0x14]
mov dword [ebp - 0x70], esi
mov esi, ecx
or esi, 0x80
test ecx, 0x1000000
mov eax, esi
mov dword [ebp - 0x18], esi
mov esi, dword [ebp + 8]
cmove eax, ecx
mov dword [ebp - 0x18], eax
jmp 0x54e08d
mov edi, dword [ebp + 0xc]
jmp 0x54f5c6
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 8]
movzx eax, ax
mov dword [ebp - 0x48], eax
cmp esi, ebx
jae 0x55065a
cmp edi, dword [ebp - 0x78]
jae 0x5506b6
mov edx, dword [edx]
mov eax, dword [ebp - 8]
movzx eax, ax
cmp eax, dword [edx + 0x20]
ja 0x550653
cmp dword [ebp - 0x38], 0
mov edi, esi
movzx ebx, byte [esi]
mov dword [ebp - 0x1c], ebx
mov ecx, ebx
mov dword [ebp - 0x14], ebx
lea esi, [edi + 1]
mov dword [ebp + 8], esi
mov eax, esi
je 0x54e1d0
cmp ebx, 0xc0
jb 0x54e1d0
movzx ecx, byte [esi]
and ecx, 0x3f
test bl, 0x20
jne 0x54e100
mov eax, ebx
mov ebx, ecx
and eax, 0x1f
shl eax, 6
or ebx, eax
inc esi
jmp 0x54e1c3
test bl, 0x10
jne 0x54e121
movzx eax, byte [esi + 1]
and ebx, 0xf
shl ebx, 6
and eax, 0x3f
or ebx, ecx
shl ebx, 6
or ebx, eax
add esi, 2
jmp 0x54e1c3
test bl, 8
jne 0x54e14b
movzx eax, byte [esi + 1]
and ebx, 7
shl ebx, 6
and eax, 0x3f
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x54e1c3
push 4
pop eax
test al, bl
jne 0x54e185
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, 0x3f
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
push 4
pop eax
add esi, eax
jmp 0x54e1c3
xor eax, eax
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
or ecx, ebx
shl ecx, 6
push 0x3f
pop ebx
and eax, ebx
or ecx, eax
movzx eax, byte [esi + 2]
and eax, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, ebx
mov ebx, ecx
or ebx, eax
add esi, 5
mov dword [ebp - 0x1c], ebx
mov eax, esi
mov dword [ebp - 0x14], ebx
mov ecx, ebx
mov dword [ebp + 8], esi
cmp dword [ebp - 0x44], 0
je 0x54e24f
cmp ecx, 0x5c
jne 0x54e1ee
cmp eax, dword [ebp - 4]
jae 0x54e1ee
cmp byte [esi], 0x45
jne 0x54e1ee
and dword [ebp - 0x44], 0
jmp 0x54e2ce
cmp dword [ebp - 0x58], 0
jg 0x54e548
cmp dword [ebp - 0x64], 0
je 0x54e203
mov edi, dword [ebp + 0xc]
jmp 0x54e239
mov ecx, dword [ebp - 0x5c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x5c], ecx
test eax, eax
jg 0x54e230
push dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push dword [ebp + 0xc]
push dword [ebp - 0x68]
push eax
push edi
call fcn.0054ddbf
mov ecx, dword [ebp - 0x54]
add esp, 0x14
mov edi, eax
mov dword [ebp - 0x60], ecx
jmp 0x54e233
mov edi, dword [ebp + 0xc]
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
and dword [ebp - 0x4c], 0
mov dword [edi], ebx
push 4
pop eax
add edi, eax
mov dword [ebp + 0xc], edi
mov edx, dword [ebp + 0x14]
jmp 0x54e08a
cmp dword [ebp - 0x64], 0
je 0x54e2a2
mov eax, dword [ebp - 0x18]
and eax, 0x400080
cmp eax, 0x400080
jne 0x54e2d7
cmp ecx, 0xff
jbe 0x54e281
xor ecx, ecx
mov eax, ebx
inc ecx
or eax, ecx
cmp eax, 0x200f
je 0x54e281
cmp eax, 0x2029
jne 0x54e2d7
cmp ebx, 0x100
jae 0x54e2a2
cmp ebx, 0x23
je 0x54e2a2
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x10]
test byte [ebx + eax], 1
jne 0x54e2a2
cmp ebx, 0x85
jne 0x54e2da
mov ecx, dword [ebp - 4]
cmp ebx, 0x5c
jne 0x54e397
cmp esi, ecx
jae 0x54e397
mov al, byte [esi]
cmp al, 0x51
je 0x54e2c4
cmp al, 0x45
jne 0x54e397
xor ecx, ecx
cmp al, 0x51
sete cl
mov dword [ebp - 0x44], ecx
mov edi, dword [ebp + 0xc]
inc esi
jmp 0x54e247
mov ecx, dword [ebp + 0x14]
cmp ebx, 0x29
je 0x54e34a
cmp ebx, 0x5c
jne 0x54e342
mov eax, dword [ebp - 0x18]
test eax, 0x400000
je 0x54e342
mov ebx, dword [ebp - 4]
push ecx
push 0
push dword [edx + 0x24]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 8]
push ebx
push eax
call fcn.00548c86
mov ecx, dword [ebp - 0x10]
add esp, 0x20
test ecx, ecx
jne 0x550626
sub eax, ecx
je 0x54e33c
sub eax, 0x19
je 0x54fa36
mov esi, dword [ebp + 8]
sub eax, 1
jne 0x550504
xor eax, eax
inc eax
mov dword [ebp - 0x44], eax
jmp 0x54e4c1
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp + 0xc]
jmp 0x54e23d
and dword [ebp - 0x64], 0
mov eax, esi
sub eax, dword [ebp - 0x80]
dec eax
cmp eax, 0xff
jg 0x55050e
mov edi, dword [ebp + 0xc]
mov eax, edi
mov ecx, dword [ebp - 0x7c]
sub eax, ecx
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp - 4]
sar eax, 2
dec eax
mov dword [ecx], eax
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 8]
test ecx, ecx
je 0x54e090
push 4
pop eax
mov dword [edi], ecx
add edi, eax
xor eax, eax
mov dword [ebp + 0xc], edi
mov dword [ebp - 0x6c], eax
jmp 0x54e08d
test byte [ebp - 0x18], 0x80
je 0x54e48c
mov edx, dword [ebp + 0x14]
cmp ebx, 0x100
jae 0x54e3b9
mov eax, dword [edx + 0x10]
test byte [ebx + eax], 1
jne 0x54e087
cmp ebx, 0x85
je 0x54e087
mov eax, ebx
or eax, 1
cmp eax, 0x200f
je 0x54e087
cmp eax, 0x2029
je 0x54e087
cmp ebx, 0x23
jne 0x54e48c
mov ebx, dword [ebp - 4]
cmp esi, ebx
jmp 0x54e47b
mov ecx, dword [edx + 0x90]
lea edi, [edx + 0x94]
mov eax, dword [edx + 0x20]
test ecx, ecx
je 0x54e435
cmp esi, eax
jae 0x54e422
push dword [ebp - 0x38]
push edi
push eax
push ecx
push esi
call fcn.0055492e
add esp, 0x14
test eax, eax
je 0x54e422
xor eax, eax
inc eax
jmp 0x54e424
xor eax, eax
mov edx, dword [ebp + 0x14]
test eax, eax
je 0x54e457
add esi, dword [edi]
mov edi, dword [ebp + 0xc]
jmp 0x54e08d
sub eax, dword [edi]
cmp esi, eax
ja 0x54e457
mov al, byte [esi]
cmp al, byte [edx + 0xa0]
jne 0x54e457
xor eax, eax
inc eax
cmp dword [edi], eax
je 0x54e42b
mov al, byte [esi + 1]
cmp al, byte [edx + 0xa1]
je 0x54e42b
inc esi
cmp dword [ebp - 0x38], 0
mov eax, esi
je 0x54e479
cmp esi, ebx
jae 0x54e479
mov ecx, esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x54e3f3
lea esi, [ecx + 1]
mov eax, esi
mov ecx, esi
cmp eax, ebx
jb 0x54e466
cmp eax, ebx
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 0xc]
jb 0x54e3f3
jmp 0x54e090
cmp ebx, 0x28
jne 0x54e4cc
mov eax, ecx
push 2
sub eax, esi
pop ecx
cmp eax, ecx
jl 0x54e4fc
cmp byte [esi], 0x3f
jne 0x54e4fc
cmp byte [esi + 1], 0x23
jne 0x54e4fc
mov ebx, dword [ebp - 4]
inc esi
cmp esi, ebx
jae 0x550519
cmp byte [esi], 0x29
jne 0x54e4aa
cmp esi, ebx
jae 0x550519
inc esi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
jmp 0x54e08d
cmp ebx, 0x2a
je 0x54e528
cmp ebx, 0x2b
je 0x54e528
cmp ebx, 0x3f
je 0x54e528
cmp ebx, 0x7b
jne 0x54e4fc
lea eax, [ebp - 0x10]
mov dword [ebp - 0x50], esi
push eax
push 0
push 0
push ecx
lea eax, [ebp - 0x50]
push eax
call fcn.00551bad
add esp, 0x14
test eax, eax
jne 0x54e528
mov ecx, dword [ebp - 0x5c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x5c], ecx
test eax, eax
jg 0x54e528
push dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push dword [ebp + 0xc]
push dword [ebp - 0x68]
push eax
push edi
call fcn.0054ddbf
mov ecx, dword [ebp - 0x54]
add esp, 0x14
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x58]
test ecx, ecx
jle 0x54e5a4
cmp ebx, 0x28
jne 0x54e548
mov eax, dword [ebp - 4]
sub eax, esi
cmp eax, 3
jl 0x54e548
mov al, byte [esi]
cmp al, 0x3f
je 0x54e553
cmp al, 0x2a
je 0x54e558
dec esi
mov ecx, 0x80
jmp 0x54efde
cmp byte [esi], 0x2a
jne 0x54e573
mov eax, dword [ebp + 0x14]
movzx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
movzx eax, byte [ecx + eax]
xor ecx, ecx
inc ecx
shr eax, 2
and eax, ecx
mov ecx, dword [ebp - 0x58]
jmp 0x54e593
movzx eax, byte [esi + 1]
sub eax, 0x21
je 0x54e5a4
sub eax, 0x1b
je 0x54e599
sub eax, 1
je 0x54e5a4
sub eax, 6
jne 0x54e548
push 2
pop edx
cmp ecx, edx
sete al
test eax, eax
je 0x54e548
jmp 0x54e5a4
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x54e5a4
cmp al, 0x21
jne 0x54e548
mov eax, dword [ebp - 0x4c]
mov edx, eax
and dword [ebp - 0x58], 0
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0xc], ecx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x4c], ecx
test eax, eax
je 0x54e5f5
cmp ebx, 0x3f
je 0x54e5c9
cmp ebx, 0x2b
jne 0x54e5f5
cmp ebx, 0x3f
mov ecx, 0x10000
mov ebx, 0x20000
cmove ecx, ebx
add ecx, eax
cmp edx, 0x803d0000
push 0xfffffffffffffffc
pop eax
push 0xfffffffffffffff4
pop edi
cmove eax, edi
mov edi, dword [ebp + 0xc]
mov dword [eax + edi], ecx
jmp 0x54e247
cmp ebx, 0x3f
ja 0x54f5e8
je 0x54f5dc
mov eax, ebx
sub eax, 0x24
je 0x54f5ce
push 4
pop ecx
sub eax, ecx
je 0x54e6f1
sub eax, 1
je 0x54e658
sub eax, 1
je 0x54e64c
sub eax, 1
je 0x54e640
sub eax, 3
jne 0x54f614
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x80170000
jmp 0x54f619
mov dword [ebp - 0x4c], 0x80370000
jmp 0x54f6cb
mov dword [ebp - 0x4c], 0x80340000
jmp 0x54f6cb
mov ebx, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 8]
inc edx
mov dword [ebp - 0x20], edx
test ebx, ebx
je 0x54e6cf
cmp word [ebx], ax
jne 0x54e6cf
mov eax, dword [ebp - 0x18]
and eax, 0xfefbdb17
or eax, dword [ebx + 8]
test byte [ebx + 6], dl
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x18], eax
je 0x54e68f
movzx eax, word [ebx + 4]
cmp eax, dword [edx + 0x74]
jbe 0x54e68f
mov dword [edx + 0x74], eax
movzx eax, word [ebx + 6]
mov ecx, eax
not ecx
shr ecx, 1
and ecx, 1
mov dword [ebp - 0x20], ecx
test al, 4
je 0x54e6b2
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x80190000
add eax, 4
mov dword [ebp + 0xc], eax
push 4
cmp ebx, dword [edx + 0x14]
jne 0x54e6c4
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
pop ecx
jmp 0x54e6d2
sub ebx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x20], ecx
jmp 0x54e6be
mov edx, dword [ebp + 0x14]
test ax, ax
je 0x550520
mov edi, dword [ebp + 0xc]
add eax, 0xffff
mov dword [ebp - 8], eax
mov dword [edi], 0x80190000
jmp 0x54f66c
mov ebx, dword [ebp - 4]
cmp esi, ebx
jae 0x54efdb
mov al, byte [esi]
cmp al, 0x3f
je 0x54ea63
cmp al, 0x2a
je 0x54e749
inc dword [ebp - 8]
test dword [ebp - 0x18], 0x2000
jne 0x54e734
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0x74]
cmp ecx, 0xffff
jae 0x5505c6
inc ecx
mov dword [edx + 0x74], ecx
or ecx, 0x80080000
jmp 0x54e739
mov ecx, 0x801a0000
mov edx, dword [ebp + 0xc]
lea edi, [edx + 4]
mov dword [edx], ecx
mov dword [ebp + 0xc], edi
jmp 0x54e4c4
xor ecx, ecx
mov eax, ebx
sub eax, esi
inc ecx
cmp eax, ecx
mov eax, dword [ebp - 8]
jle 0x54e07f
movzx ecx, byte [esi + 1]
mov dword [ebp - 0x14], ecx
cmp ecx, 0x29
je 0x54e07f
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [edx + 0x10]
test byte [ecx + eax], 4
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push 0
push dword [ebp - 0x38]
lea eax, [ebp + 8]
push ebx
push eax
je 0x54e937
mov dword [ebp - 0x1c], 0x5bcb30
call fcn.00551801
add esp, 0x24
test eax, eax
je 0x550560
mov esi, dword [ebp + 8]
mov dword [ebp - 0x14], esi
cmp esi, ebx
jae 0x55054c
cmp byte [esi], 0x3a
jne 0x55054c
and dword [ebp - 0x2c], 0
xor esi, esi
and dword [ebp - 0x24], 0
xor ecx, ecx
xor edi, edi
xor eax, eax
mov ebx, dword [ebp - 0x28]
lea edx, [edi*8 + 0x5bcc08]
mov dword [ebp - 0x48], edx
cmp ebx, dword [edx]
jne 0x54e804
push dword [ebp - 0x28]
mov ebx, ecx
mov edi, eax
push dword [ebp - 0x1c]
push dword [ebp - 0x3c]
call fcn.00554cd6
add esp, 0xc
test eax, eax
je 0x54e823
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x1c]
lea eax, [esi + 1]
inc ecx
mov dword [ebp - 0x24], eax
add ecx, dword [edx]
mov edi, eax
mov dword [ebp - 0x1c], ecx
mov esi, eax
mov dword [ebp - 0x2c], eax
mov ecx, eax
mov ebx, eax
cmp edi, 0x11
jl 0x54e7d4
mov esi, dword [ebp - 0x14]
cmp ebx, 0x11
jge 0x55054c
mov edx, dword [edi*8 + 0x5bcc0c]
mov edi, dword [ebp - 0xc]
test edi, edi
jle 0x54e84e
lea eax, [edx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x550524
cmp edx, 0x80250000
ja 0x54e890
je 0x54e92e
cmp edx, 0x80020000
je 0x54f5aa
cmp edx, 0x80220000
je 0x54e8bd
cmp edx, 0x80230000
je 0x54eee7
cmp edx, 0x80240000
jne 0x550542
mov ebx, dword [ebp - 4]
jmp 0x54ede0
mov eax, 0x80260000
cmp edx, eax
je 0x54e92e
cmp edx, 0x80270000
je 0x54eac2
cmp edx, 0x80280000
je 0x54e92e
cmp edx, 0x8fff0000
jne 0x550542
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 4]
push 4
pop ecx
mov dword [edi], 0x80220000
add edi, ecx
inc eax
mov dword [ebp + 0xc], edi
inc esi
mov dword [ebp - 8], eax
cmp edx, 0x8fff0000
jne 0x54f5c6
mov dword [edi], 0x80020000
add edi, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp + 0xc], edi
test ecx, ecx
jne 0x54e902
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x30], ecx
jmp 0x54e914
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
cmp ecx, dword [ebp - 0x70]
jae 0x55059a
mov edx, dword [ebp + 0x14]
mov word [ecx], ax
push 4
pop eax
mov word [ecx + 6], ax
mov eax, dword [ebp - 0x18]
and eax, 0x10424e8
mov dword [ecx + 8], eax
jmp 0x54e08d
mov ebx, dword [ebp - 4]
dec esi
jmp 0x54eebb
mov dword [ebp - 0x1c], 0x5bca90
call fcn.00551801
add esp, 0x24
test eax, eax
je 0x550560
mov esi, dword [ebp + 8]
mov dword [ebp - 0x14], esi
cmp esi, ebx
jae 0x550660
mov al, byte [esi]
cmp al, 0x3a
je 0x54e96a
cmp al, 0x29
jne 0x550660
xor ebx, ebx
xor edx, edx
and dword [ebp - 0x48], ebx
xor ecx, ecx
mov esi, dword [ebp - 0x48]
xor eax, eax
mov dword [ebp - 0x2c], ebx
mov edi, dword [ebp - 0x28]
imul eax, eax, 0xc
mov dword [ebp - 0x48], eax
cmp edi, dword [eax + 0x5bcac0]
jne 0x54e9a8
push dword [ebp - 0x28]
mov edi, ecx
push dword [ebp - 0x1c]
push dword [ebp - 0x3c]
call fcn.00554cd6
add esp, 0xc
test eax, eax
je 0x54e9ca
mov eax, dword [ebp - 0x48]
mov edx, esi
mov ecx, dword [ebp - 0x1c]
lea ebx, [edx + 1]
inc ecx
mov dword [ebp - 0x2c], ebx
add ecx, dword [eax + 0x5bcac0]
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x1c], ecx
mov edx, ebx
mov ecx, ebx
mov edi, ebx
cmp eax, 9
jl 0x54e97b
mov esi, dword [ebp - 0x14]
cmp edi, 9
jge 0x550660
cmp byte [esi], 0x3a
jne 0x54e9e9
lea eax, [esi + 1]
cmp eax, dword [ebp - 4]
jae 0x54e9e9
cmp byte [eax], 0x29
cmove esi, eax
imul ecx, ebx, 0xc
mov edx, dword [ecx + 0x5bcac8]
test edx, edx
jle 0x54e9ff
cmp byte [esi], 0x3a
jne 0x550556
mov ecx, dword [ecx + 0x5bcac4]
xor eax, eax
mov ebx, dword [ebp + 0xc]
cmp ecx, 0x802a0000
mov dword [ebp - 0x84], ebx
sete al
mov dword [ebp - 0x20], eax
mov al, byte [esi]
lea edi, [ebx + 4]
inc esi
cmp al, 0x3a
jne 0x54ea5c
test edx, edx
jns 0x54ea34
mov dword [ebp - 0x6c], ecx
mov eax, 0x80290000
jmp 0x54ea46
xor eax, eax
mov edx, 0x10000
cmp ecx, 0x80290000
cmovne eax, edx
add eax, ecx
mov dword [ebx], eax
xor eax, eax
mov dword [ebp - 0x7c], edi
add edi, 4
inc eax
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x64], eax
jmp 0x54e244
mov dword [ebx], ecx
jmp 0x54e244
inc esi
mov dword [ebp + 8], esi
cmp esi, ebx
jae 0x54efdb
mov cl, byte [esi]
movzx eax, cl
cmp eax, 0x35
ja 0x54ee42
je 0x54ef85
cmp eax, 0x2b
ja 0x54ee10
je 0x54edee
sub eax, 0x21
je 0x54eddd
sub eax, 5
je 0x54f3d0
sub eax, 1
je 0x54edd6
sub eax, 1
je 0x54ead3
push 2
pop edx
sub eax, edx
jne 0x54ef6c
mov edi, dword [ebp - 0xc]
jmp 0x54eac5
mov ebx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x80270000
jmp 0x54eef3
inc esi
mov dword [ebp + 8], esi
cmp esi, ebx
jae 0x54efdb
mov al, byte [esi]
inc dword [ebp - 8]
cmp al, 0x3f
je 0x54edb9
cmp al, 0x2a
je 0x54edb9
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp + 0x14]
push 0xa1
push 0xffff
push dword [eax + 0x74]
lea eax, [ebp + 8]
push ebx
push eax
call fcn.00551aee
add esp, 0x1c
test eax, eax
je 0x54eb57
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp + 8]
test ecx, ecx
jle 0x55056b
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
push 4
pop eax
mov dword [edi], 0x80120000
add edi, eax
mov eax, esi
sub eax, dword [edx + 0x1c]
sub eax, 2
push 4
mov dword [edi], eax
mov dword [ebp - 0x34], eax
pop eax
add edi, eax
push eax
mov dword [edi], ecx
pop ecx
jmp 0x54eda2
mov ecx, dword [ebp - 0x10]
test ecx, ecx
jne 0x550626
mov edi, dword [ebp + 8]
sub ebx, edi
cmp ebx, 0xa
jl 0x54ec81
push 7
push str.VERSION
push edi
call fcn.00554cd6
add esp, 0xc
test eax, eax
jne 0x54ec81
lea esi, [edi + 7]
cmp byte [esi], 0x29
je 0x54ec81
xor ebx, ebx
xor edi, edi
and dword [ebp - 0x24], ebx
mov eax, esi
cmp byte [esi], 0x3e
jne 0x54ebaa
xor eax, eax
inc esi
lea ebx, [eax + 1]
mov eax, esi
cmp byte [esi], 0x3d
jne 0x550572
lea esi, [eax + 1]
mov al, byte [esi]
mov dword [ebp + 8], esi
cmp al, 0x30
jb 0x550572
cmp al, 0x39
ja 0x550572
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x24]
push eax
push 0xb3
push 0x3e8
push 0xffffffffffffffff
push dword [ebp - 4]
lea eax, [ebp + 8]
push eax
call fcn.00551aee
add esp, 0x1c
test eax, eax
je 0x550560
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 4]
cmp esi, edx
jae 0x550572
cmp byte [esi], 0x2e
jne 0x54ec5a
inc esi
cmp esi, edx
jae 0x550572
mov al, byte [esi]
cmp al, 0x30
jb 0x550572
cmp al, 0x39
ja 0x550572
movzx eax, al
sub eax, 0x30
imul edi, eax, 0xa
inc esi
mov eax, esi
mov cl, byte [esi]
cmp cl, 0x30
jb 0x54ec49
cmp cl, 0x39
ja 0x54ec49
movzx eax, cl
add eax, 0xffffffd0
add edi, eax
lea eax, [esi + 1]
mov esi, eax
cmp eax, edx
jae 0x550572
cmp byte [esi], 0x29
jne 0x550572
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x24]
push 4
pop edx
mov dword [ecx], 0x80150000
add ecx, edx
push edx
mov dword [ecx], ebx
add ecx, edx
mov dword [ecx], eax
add ecx, edx
mov dword [ebp + 0xc], ecx
mov dword [ecx], edi
mov edi, ecx
pop ecx
jmp 0x54ed9c
mov al, byte [edi]
and dword [ebp - 0x1c], 0
cmp al, 0x52
jne 0x54eca1
xor ecx, ecx
inc ecx
cmp ebx, ecx
jle 0x54ecba
lea eax, [edi + 1]
cmp byte [eax], 0x26
jne 0x54ecba
mov ebx, ecx
mov dword [ebp + 8], eax
jmp 0x54ecc1
cmp al, 0x3c
jne 0x54ecac
mov ebx, dword [ebp - 0x1c]
push 0x3e
jmp 0x54ecc3
cmp al, 0x27
jne 0x54ecba
mov ebx, dword [ebp - 0x1c]
push 0x27
pop eax
mov esi, eax
jmp 0x54ecc4
mov ebx, dword [ebp - 0x1c]
dec edi
mov dword [ebp + 8], edi
push 0x29
pop esi
push dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push esi
push dword [ebp - 0x38]
lea eax, [ebp + 8]
push dword [ebp - 4]
push eax
call fcn.00551801
add esp, 0x24
test eax, eax
je 0x550560
test ebx, ebx
mov ebx, dword [ebp - 0x28]
je 0x54ed04
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x80130000
jmp 0x54ed73
cmp esi, 0x29
jne 0x54ed79
mov esi, dword [ebp - 0x3c]
cmp ebx, 6
jne 0x54ed2c
push 6
push str.DEFINE
push esi
call fcn.00554cd6
add esp, 0xc
test eax, eax
jne 0x54ed2c
mov eax, 0x80100000
jmp 0x54ed6e
xor ecx, ecx
inc ecx
mov dword [ebp - 0x2c], ecx
mov eax, ecx
cmp ebx, ecx
jle 0x54ed5b
mov edi, ecx
mov edx, ecx
mov cl, byte [esi + ecx]
cmp cl, 0x30
jb 0x54ed5b
mov eax, edx
cmp cl, 0x39
ja 0x54ed5b
lea eax, [edi + 1]
mov ecx, eax
mov dword [ebp - 0x2c], eax
mov edi, eax
mov edx, eax
cmp ecx, ebx
jl 0x54ed3c
cmp byte [esi], 0x52
jne 0x54ed69
cmp eax, ebx
mov eax, 0x80140000
jge 0x54ed6e
mov eax, 0x80110000
mov edi, dword [ebp + 0xc]
mov dword [edi], eax
mov esi, dword [ebp + 8]
dec esi
jmp 0x54ed85
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [edi], 0x80110000
mov eax, dword [edi]
push 4
pop ecx
add edi, ecx
cmp eax, 0x80100000
je 0x54ed97
mov dword [edi], ebx
add edi, ecx
mov eax, dword [ebp - 0x34]
mov dword [edi], eax
mov ebx, dword [ebp - 4]
mov edx, dword [ebp + 0x14]
cmp esi, ebx
jae 0x55057c
cmp byte [esi], 0x29
jne 0x55057c
inc esi
jmp 0x54f73d
mov edi, dword [ebp + 0xc]
push 4
pop eax
push 2
mov dword [edi], 0x800f0000
add edi, eax
pop eax
mov dword [ebp + 0xc], edi
dec esi
mov dword [ebp - 0x58], eax
jmp 0x54e4c4
push 0x27
jmp 0x54f219
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x80240000
jmp 0x54eef3
mov eax, ebx
push 2
sub eax, esi
pop edx
cmp eax, edx
jl 0x54ee06
mov al, byte [esi + 1]
sub al, 0x30
cmp al, 9
jbe 0x54ef85
mov ecx, 0x81
jmp 0x54efde
sub eax, 0x30
je 0x54ef85
sub eax, 1
je 0x54ef85
sub eax, 1
je 0x54ef85
sub eax, 1
je 0x54ef85
sub eax, 1
je 0x54ef85
jmp 0x54ef6c
push 0x3d
pop edx
cmp eax, edx
ja 0x54ef46
je 0x54eee2
sub eax, 0x36
je 0x54ef85
sub eax, 1
je 0x54ef85
sub eax, 1
je 0x54ef85
sub eax, 1
je 0x54ef85
sub eax, 3
jne 0x54ef6c
xor ecx, ecx
mov eax, ebx
sub eax, esi
inc ecx
cmp eax, ecx
jle 0x54f217
mov al, byte [esi + 1]
cmp al, dl
je 0x54eeb3
cmp al, 0x21
je 0x54eea2
cmp al, 0x2a
jne 0x54f217
cmp al, 0x21
mov edx, 0x80280000
mov eax, 0x80260000
cmove edx, eax
jmp 0x54eeb8
mov edx, 0x80250000
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
lea ecx, [eax + 4]
mov eax, dword [ebp + 0x10]
xor edx, edx
inc edx
mov dword [eax], edx
mov eax, esi
mov edx, dword [ebp + 0x14]
sub eax, dword [edx + 0x1c]
sub eax, 2
add esi, 2
mov dword [ebp - 0x34], eax
mov dword [ecx], eax
mov eax, ecx
jmp 0x54eef7
mov edi, dword [ebp - 0xc]
jmp 0x54eeea
mov ebx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x80230000
mov edx, dword [ebp + 0x14]
inc esi
add eax, 4
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
test edi, edi
jle 0x54ef3e
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x54ef17
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x30], ecx
jmp 0x54ef26
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
cmp ecx, dword [ebp - 0x70]
jae 0x55059a
mov word [ecx], ax
push 2
pop eax
mov word [ecx + 6], ax
mov eax, dword [ebp - 0x18]
and eax, 0x10424e8
mov dword [ecx + 8], eax
mov eax, dword [ebp - 8]
mov edi, dword [ebp + 0xc]
jmp 0x54e090
sub eax, 0x3e
je 0x54f5ad
sub eax, 5
je 0x54f46a
sub eax, 0xd
je 0x54f201
push 2
pop edx
sub eax, edx
je 0x54f1e4
cmp cl, 0x2d
jne 0x54efee
xor edx, edx
mov eax, ebx
sub eax, esi
inc edx
cmp eax, edx
jle 0x54efee
mov al, byte [esi + 1]
sub al, 0x30
cmp al, 9
ja 0x54efee
sub cl, 0x30
cmp cl, 9
ja 0x54ef92
or eax, 0xffffffff
jmp 0x54ef98
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x74]
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
push 0xa1
push 0xffff
push eax
lea eax, [ebp + 8]
push ebx
push eax
call fcn.00551aee
add esp, 0x1c
test eax, eax
je 0x550560
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp + 8]
test eax, eax
js 0x550583
cmp esi, ebx
jae 0x54efdb
cmp byte [esi], 0x29
je 0x54f90b
push 0x72
pop ecx
mov eax, dword [ebp + 0x14]
sub esi, dword [eax + 0x1c]
mov dword [eax + 0x54], esi
mov eax, ecx
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x30]
inc eax
mov dword [ebp - 8], eax
test ecx, ecx
jne 0x54f007
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x30], ecx
jmp 0x54f019
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
cmp ecx, dword [ebp - 0x70]
jae 0x55059a
mov edx, dword [ebp + 0x14]
mov word [ecx], ax
xor eax, eax
mov word [ecx + 6], ax
mov eax, dword [ebp - 0x18]
and eax, 0x10424e8
mov dword [ecx + 8], eax
cmp byte [esi], 0x7c
jne 0x54f067
mov ax, word [edx + 0x74]
mov edi, dword [ebp + 0xc]
mov word [ecx + 2], ax
mov ax, word [edx + 0x74]
mov word [ecx + 4], ax
xor eax, eax
inc eax
mov word [ecx + 6], ax
or dword [edx + 0x70], 0x200000
push 4
pop eax
mov dword [edi], 0x801a0000
add edi, eax
mov dword [ebp + 0xc], edi
inc esi
jmp 0x54e08d
xor eax, eax
lea edi, [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x24], edx
lea ebx, [eax + 1]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ecx + 2], eax
xor ecx, ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], ecx
cmp esi, eax
jae 0x54f14f
cmp byte [esi], 0x5e
jne 0x54f09e
and dword [ebp - 0x18], 0xfeffdb57
xor ebx, ebx
inc esi
cmp esi, eax
jae 0x54f14f
mov ecx, eax
mov al, byte [esi]
cmp al, 0x29
je 0x54f149
cmp al, 0x3a
je 0x54f149
inc esi
cmp al, 0x6d
ja 0x54f108
je 0x54f100
cmp al, 0x2d
je 0x54f0f1
cmp al, 0x4a
je 0x54f0e2
cmp al, 0x55
je 0x54f0da
cmp al, 0x69
jne 0x550592
or dword [edi], 8
jmp 0x54f141
or dword [edi], 0x40000
jmp 0x54f141
mov eax, dword [ebp + 0x14]
or dword [edi], 0x40
or dword [eax + 0x70], 0x400
jmp 0x54f141
test ebx, ebx
je 0x550587
lea edi, [ebp - 0x1c]
xor ebx, ebx
jmp 0x54f141
or dword [edi], 0x400
jmp 0x54f141
cmp al, 0x6e
je 0x54f1a9
cmp al, 0x73
je 0x54f1a4
cmp al, 0x78
jne 0x550592
mov ecx, dword [edi]
mov eax, ecx
or eax, 0x80
mov dword [edi], eax
cmp esi, dword [ebp - 4]
jae 0x54f13e
cmp byte [esi], 0x78
jne 0x54f13e
or ecx, 0x1000080
inc esi
mov dword [edi], ecx
mov ecx, dword [ebp - 4]
cmp esi, ecx
jb 0x54f0a8
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
mov eax, edx
and eax, 0x1000080
cmp eax, 0x80
je 0x54f161
test cl, cl
jns 0x54f167
or ecx, 0x1000000
or edx, dword [ebp - 0x18]
not ecx
mov ebx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 0x18], edx
cmp esi, ebx
jae 0x54efdb
mov al, byte [esi]
inc esi
mov edx, dword [ebp + 0x14]
cmp al, 0x29
jne 0x54f1bc
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x30]
movzx edi, ax
mov dword [ebp - 8], edi
cmp ecx, dword [edx + 0x14]
jbe 0x54f1b1
lea eax, [ecx - 0xc]
cmp word [eax], di
jne 0x54f1b1
mov dword [ebp - 0x30], eax
jmp 0x54f1b4
or dword [edi], 0x20
jmp 0x54f141
or dword [edi], 0x2000
jmp 0x54f141
mov word [ecx], di
mov edi, dword [ebp + 0xc]
push 4
pop ecx
jmp 0x54f1cd
mov edi, dword [ebp + 0xc]
push 4
pop ecx
mov dword [edi], 0x801a0000
add edi, ecx
mov dword [ebp + 0xc], edi
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0xc]
je 0x54e08d
mov dword [edi], 0x801b0000
jmp 0x54f739
xor eax, eax
inc esi
mov dword [ebp - 0x2c], eax
cmp esi, ebx
jae 0x54f1f7
cmp byte [esi], 0x29
je 0x54f90b
mov ecx, 0x9e
jmp 0x54efde
inc esi
mov dword [ebp + 8], esi
cmp esi, ebx
jae 0x54efdb
mov al, byte [esi]
cmp al, 0x3c
jne 0x54f3cc
push 0x3e
pop eax
push dword [ebp + 0x14]
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x34]
push ecx
push eax
push dword [ebp - 0x38]
lea eax, [ebp + 8]
push ebx
push eax
call fcn.00551801
add esp, 0x24
test eax, eax
je 0x550560
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x74]
cmp eax, 0xffff
jae 0x5505c3
mov ecx, dword [ebp + 0xc]
inc eax
mov dword [edx + 0x74], eax
or eax, 0x80080000
push 4
mov dword [ecx], eax
movzx edx, word [edx + 0x58]
pop eax
add ecx, eax
inc dword [ebp - 8]
mov eax, 0x2710
mov dword [ebp + 0xc], ecx
cmp dx, ax
jae 0x5505bc
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x28]
add ecx, 3
movzx eax, word [ebx + 0x5a]
cmp ecx, eax
mov ecx, dword [ebp - 0x28]
jbe 0x54f29d
lea eax, [ecx + 3]
mov word [ebx + 0x5a], ax
mov esi, dword [ebx + 0x64]
xor eax, eax
and dword [ebp - 0x24], 0
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x2c], ebx
cmp ax, dx
mov edx, dword [ebp + 0x14]
jae 0x54f316
movzx eax, word [esi + 8]
cmp ecx, eax
jne 0x54f2f6
push ecx
push dword [esi]
push dword [ebp - 0x3c]
call fcn.00554cd6
mov edx, dword [ebp + 0x14]
add esp, 0xc
test eax, eax
jne 0x54f2f6
mov eax, dword [esi + 4]
cmp eax, dword [edx + 0x74]
je 0x54f316
test byte [ebp - 0x18], 0x40
je 0x5505a4
xor eax, eax
inc eax
mov word [esi + 0xa], ax
mov dword [ebp - 0x24], eax
mov dword [edx + 0xb8], eax
jmp 0x54f302
mov eax, dword [esi + 4]
cmp eax, dword [edx + 0x74]
je 0x5505ab
movzx eax, word [edx + 0x58]
inc ebx
add esi, dword [ebp - 0x40]
mov edi, ebx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ebx
cmp ebx, eax
jl 0x54f2b5
movzx eax, word [edx + 0x58]
cmp edi, eax
jl 0x54fa2b
mov ecx, dword [edx + 0x68]
cmp eax, ecx
jb 0x54f376
lea edi, [ecx + ecx]
mov ecx, dword [edx]
imul eax, edi, 0xc
push dword [ecx + 8]
push eax
call dword [ecx]
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x5505b2
mov eax, dword [ebp + 0x14]
imul ecx, dword [eax + 0x68], 0xc
push ecx
push dword [eax + 0x64]
push esi
call fcn.00568520
mov edx, dword [ebp + 0x14]
add esp, 0xc
cmp dword [edx + 0x68], 0x14
jbe 0x54f370
mov eax, dword [edx]
push dword [eax + 8]
push dword [edx + 0x64]
call dword [eax + 4]
mov edx, dword [ebp + 0x14]
pop ecx
pop ecx
mov dword [edx + 0x64], esi
mov dword [edx + 0x68], edi
movzx eax, word [edx + 0x58]
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp - 0x28]
imul ecx, eax, 0xc
mov eax, dword [edx + 0x64]
mov edx, dword [ebp - 0x3c]
mov dword [ecx + eax], edx
movzx eax, word [ebx + 0x58]
imul ecx, eax, 0xc
mov eax, dword [ebx + 0x64]
mov word [ecx + eax + 8], si
movzx eax, word [ebx + 0x58]
mov ecx, dword [ebx + 0x64]
imul edx, eax, 0xc
mov eax, dword [ebx + 0x74]
mov esi, dword [ebp + 8]
mov dword [edx + ecx + 4], eax
movzx eax, word [ebx + 0x58]
mov edx, dword [ebp - 0x24]
imul ecx, eax, 0xc
mov eax, dword [ebx + 0x64]
mov word [ecx + eax + 0xa], dx
mov edx, ebx
inc word [edx + 0x58]
jmp 0x54e087
cmp al, 0x3e
jne 0x54f408
push dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push 0x29
push dword [ebp - 0x38]
lea eax, [ebp + 8]
push ebx
push eax
call fcn.00551801
add esp, 0x24
test eax, eax
je 0x550560
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x80210000
jmp 0x54f446
cmp al, dl
jne 0x5505d0
push dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push 0x29
push dword [ebp - 0x38]
lea eax, [ebp + 8]
push ebx
push eax
call fcn.00551801
add esp, 0x24
test eax, eax
je 0x550560
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x80040000
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp + 8]
push 4
pop ecx
add edi, ecx
mov dword [edi], eax
add edi, ecx
mov eax, dword [ebp - 0x34]
mov dword [edi], eax
add edi, ecx
xor eax, eax
mov dword [ebp + 0xc], edi
inc eax
mov dword [ebp - 0x20], eax
jmp 0x54e4c4
inc esi
cmp esi, ebx
jae 0x54efdb
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x60]
dec eax
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
test ecx, ecx
je 0x54f4a0
push 4
pop eax
test byte [ebp - 0x18], al
je 0x54f4a0
lea eax, [edi - 0x10]
cmp ecx, eax
jne 0x54f4a0
cmp dword [edi - 4], 0xff
cmove edi, ecx
mov dword [ebp + 0xc], edi
mov eax, edi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], eax
xor eax, eax
inc eax
mov dword [ebp - 0x5c], eax
mov al, byte [esi]
cmp al, 0x29
je 0x54f548
cmp al, 0x30
jb 0x54f4c4
cmp al, 0x39
jbe 0x54f548
and dword [ebp - 0x2c], 0
mov edx, esi
mov ecx, dword [0x5bd530]
test ecx, ecx
je 0x54f4f0
xor edi, edi
movzx ebx, al
xor eax, eax
cmp ebx, ecx
je 0x54f4fa
inc edi
mov eax, edi
mov dword [ebp - 0x2c], edi
mov ecx, dword [eax*4 + 0x5bd530]
test ecx, ecx
jne 0x54f4db
mov ecx, 0xb6
jmp 0x54efde
mov ecx, dword [eax*4 + 0x5bd424]
test ecx, ecx
je 0x54f4f0
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp - 4]
mov dword [edi], 0x80070000
add edi, dword [ebp - 0x40]
inc esi
cmp esi, ebx
jae 0x5505da
movzx eax, byte [esi]
cmp eax, ecx
jne 0x54f514
inc esi
cmp esi, ebx
jae 0x54f530
movzx eax, byte [esi]
cmp eax, ecx
je 0x54f514
mov eax, esi
sub eax, edx
mov dword [edi], eax
push 4
pop eax
add edi, eax
mov eax, dword [ebp + 0x14]
sub edx, dword [eax + 0x1c]
mov dword [ebp - 0x34], edx
mov dword [edi], edx
jmp 0x54f57c
xor ecx, ecx
mov dword [edi], 0x80060000
add edi, dword [ebp - 0x40]
jmp 0x54f576
mov dl, byte [esi]
lea eax, [edx - 0x30]
cmp al, 9
ja 0x54f57a
imul ecx, ecx, 0xa
movzx eax, dl
add ecx, 0xffffffd0
add ecx, eax
inc esi
cmp ecx, 0xff
jg 0x5505e6
cmp esi, ebx
jb 0x54f555
mov dword [edi], ecx
cmp esi, ebx
jae 0x5505f0
cmp byte [esi], 0x29
jne 0x5505f0
mov edx, dword [ebp + 0x14]
inc esi
mov ecx, dword [ebp - 0x60]
mov eax, esi
push 4
sub eax, dword [edx + 0x1c]
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
pop eax
add edi, eax
jmp 0x54f73f
mov ebx, dword [ebp - 4]
mov edi, dword [ebp + 0xc]
push 4
pop eax
mov dword [edi], 0x80020000
add edi, eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp + 0xc], edi
mov dword [ebp - 8], eax
inc esi
mov edx, dword [ebp + 0x14]
jmp 0x54e090
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x80160000
jmp 0x54e23f
mov dword [ebp - 0x4c], 0x803a0000
jmp 0x54f6cb
mov eax, ebx
sub eax, 0x5b
je 0x54fbd6
sub eax, 1
je 0x54f755
push 2
pop ecx
sub eax, ecx
je 0x54f747
sub eax, 0x1d
je 0x54f679
sub eax, 1
je 0x54f626
push 4
pop ecx
mov edi, dword [ebp + 0xc]
mov dword [edi], ebx
xor eax, eax
add edi, ecx
inc eax
mov dword [ebp - 0x20], eax
jmp 0x54e244
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 8]
test ecx, ecx
je 0x54f65d
cmp word [ecx], ax
jne 0x54f65d
xor edx, edx
inc edx
test byte [ecx + 6], dl
mov edx, dword [ebp + 0x14]
je 0x54f660
movzx eax, word [ecx + 4]
cmp dword [edx + 0x74], eax
jbe 0x54f651
mov ax, word [edx + 0x74]
mov word [ecx + 4], ax
movzx eax, word [ecx + 2]
mov dword [edx + 0x74], eax
mov eax, dword [ebp - 8]
jmp 0x54f660
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
push 4
pop ecx
mov dword [edi], 0x80010000
mov ebx, dword [ebp - 4]
add edi, ecx
mov dword [ebp + 0xc], edi
jmp 0x54e090
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 4]
lea eax, [ebp + 8]
push eax
call fcn.00551bad
add esp, 0x14
test eax, eax
jne 0x54f6c1
mov ecx, dword [ebp - 0x10]
test ecx, ecx
jne 0x550626
mov edi, dword [ebp + 0xc]
push 4
pop eax
mov dword [edi], ebx
add edi, eax
mov esi, dword [ebp + 8]
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
jmp 0x54e244
mov esi, dword [ebp + 8]
mov dword [ebp - 0x4c], 0x803d0000
test edi, edi
je 0x5505fa
mov edi, dword [ebp + 0xc]
lea ecx, [edi - 4]
cmp dword [ecx], 0x802a0000
jne 0x54f70c
mov edx, dword [ebp - 0x84]
cmp ecx, edx
jb 0x54f6fc
push 4
pop ebx
mov eax, dword [ecx]
mov dword [ecx + 4], eax
sub ecx, ebx
cmp ecx, edx
jae 0x54f6ee
mov ebx, dword [ebp - 0x1c]
mov dword [edx], 0x801a0000
mov dword [edi + 4], 0x80190000
add edi, 8
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp + 0x14]
push 4
mov dword [edi], eax
mov eax, dword [ebp - 8]
pop ecx
add edi, ecx
cmp ebx, 0x7b
mov ebx, dword [ebp - 4]
mov dword [ebp + 0xc], edi
jne 0x54e090
mov eax, dword [ebp - 0x88]
mov dword [edi], eax
mov eax, dword [ebp - 0x8c]
add edi, ecx
mov dword [edi], eax
add edi, ecx
mov dword [ebp + 0xc], edi
jmp 0x54e08d
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x80090000
jmp 0x54e23f
mov ebx, dword [ebp + 0x14]
push ebx
push ecx
mov dword [ebp - 0x50], esi
mov eax, dword [ebx]
push dword [eax + 0x24]
lea eax, [ebp - 0x10]
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 4]
lea eax, [ebp + 8]
push eax
call fcn.00548c86
mov ecx, dword [ebp - 0x10]
add esp, 0x20
mov edi, eax
test ecx, ecx
jne 0x54f7ba
test edi, edi
je 0x54fab3
js 0x54fa65
lea eax, [edi - 6]
cmp eax, 0x16
ja case.0x54f7a2.13
movzx eax, byte [eax + 0x5506f1]
jmp dword [eax*4 + 0x5506d9]
test dword [ebp - 0x18], 0x100000
je case.0x54f7a2.12
mov ecx, 0xb7
mov dword [ebp - 0x10], ecx
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 4]
test byte [ebp - 0x74], 2
je 0x54efde
mov eax, dword [ebp - 0x50]
mov esi, eax
cmp eax, ebx
jb 0x54fac1
push 0x5c
pop edx
push 4
pop ecx
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [edi], edx
add edi, ecx
inc eax
mov dword [ebp + 0xc], edi
mov dword [ebp - 0x20], eax
jmp 0x54e4c4
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
lea eax, [edi - 0x7fe80000]
mov edi, dword [ebp + 0xc]
push 4
mov dword [edi], eax
pop eax
add edi, eax
mov esi, dword [ebp + 8]
mov edx, ebx
mov dword [ebp + 0xc], edi
jmp 0x54e08a
and dword [ebp - 0x24], 0
lea eax, [ebp - 0x10]
and dword [ebp - 0x1c], 0
push ebx
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0054d933
add esp, 0x18
test eax, eax
je 0x54f9b3
cmp dword [ebp - 0x90], 0
je 0x54f859
xor eax, eax
cmp edi, 0xf
sete al
lea edi, [eax + 0xf]
movzx ecx, word [ebp - 0x24]
lea eax, [edi - 0x7fe80000]
mov edi, dword [ebp + 0xc]
push 4
pop edx
shl ecx, 0x10
mov dword [edi], eax
add edi, edx
movzx eax, word [ebp - 0x1c]
or ecx, eax
xor eax, eax
mov dword [edi], ecx
add edi, edx
inc eax
mov dword [ebp - 0x20], eax
jmp 0x54f808
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 4]
cmp esi, ebx
jae 0x54f9bb
mov al, byte [esi]
cmp al, 0x7b
je 0x54f8a6
cmp al, 0x3c
je 0x54f938
cmp al, 0x27
jne 0x54f9bb
push 0x7d
pop ebx
cmp al, 0x27
push 0x27
pop eax
cmove ebx, eax
cmp edi, 0x1b
jne 0x54f958
cmp ebx, 0x7d
je 0x54f958
lea eax, [esi + 1]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp + 0x14]
push 0xa1
push 0xffff
push dword [eax + 0x74]
lea eax, [ebp - 0x24]
push dword [ebp - 4]
push eax
call fcn.00551aee
add esp, 0x1c
test eax, eax
je 0x54f94d
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 4]
jae 0x54f940
movzx eax, byte [ecx]
cmp eax, ebx
jne 0x54f940
mov eax, dword [ebp - 0x2c]
mov esi, ecx
mov ebx, dword [ebp - 4]
mov edi, dword [ebp + 0xc]
or eax, 0x80200000
mov edx, dword [ebp + 0x14]
push 4
pop ecx
mov dword [edi], eax
add edi, ecx
mov eax, esi
sub eax, dword [edx + 0x1c]
inc esi
mov dword [ebp - 0x34], eax
mov dword [edi], eax
add edi, ecx
xor eax, eax
mov dword [ebp + 0xc], edi
inc eax
mov dword [ebp - 0x20], eax
jmp 0x54e08d
push 0x3e
pop ebx
jmp 0x54f8b1
mov ecx, 0x9d
mov dword [ebp - 0x10], ecx
jmp 0x54f7bd
mov ecx, dword [ebp - 0x10]
test ecx, ecx
jne 0x54f7bd
push dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push ebx
push dword [ebp - 0x38]
lea eax, [ebp + 8]
push dword [ebp - 4]
push eax
call fcn.00551801
add esp, 0x24
test eax, eax
je 0x54f9b3
cmp edi, 0x1c
je 0x54f991
mov eax, 0x80210000
cmp ebx, 0x7d
jne 0x54f996
mov eax, 0x80040000
mov edi, dword [ebp + 0xc]
push 4
pop ecx
mov dword [edi], eax
add edi, ecx
mov eax, dword [ebp - 0x28]
mov dword [edi], eax
add edi, ecx
mov eax, dword [ebp - 0x34]
mov dword [edi], eax
add edi, ecx
jmp 0x54f6b3
mov ecx, dword [ebp - 0x10]
jmp 0x54f7ba
mov ecx, 0xa9
cmp edi, 0x1b
lea eax, [ecx - 0xc]
cmove ecx, eax
mov dword [ebp - 0x10], ecx
jmp 0x54f7c0
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov eax, 0x20000
test dword [ebp - 0x18], eax
je case.0x54f7a2.13
cmp edi, 7
je 0x54f9f9
cmp edi, 9
je 0x54f9f9
mov eax, 0x8018000f
cmp edi, 0xb
jne 0x54f9fe
mov eax, 0x80180010
mov ecx, dword [ebp + 0xc]
push 4
mov dword [ecx], eax
pop eax
add ecx, eax
mov dword [ebp + 0xc], ecx
sub edi, 6
je 0x54fa57
sub edi, 1
je 0x54fa57
sub edi, 1
je 0x54fa49
sub edi, 1
je 0x54fa49
sub edi, 1
je 0x54fa3b
sub edi, 1
je 0x54fa3b
mov edx, ebx
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 8]
jmp 0x54e42d
mov edx, dword [ebp + 0x14]
jmp 0x54fa2e
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x80000
jmp 0x54f806
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x60000
jmp 0x54f806
mov edi, dword [ebp + 0xc]
mov dword [edi], 0x3000d
jmp 0x54f806
mov edx, dword [ebp + 0xc]
neg edi
mov esi, dword [ebp + 8]
mov eax, edi
or eax, 0x80030000
mov ecx, esi
sub ecx, dword [ebx + 0x1c]
mov dword [edx], eax
dec ecx
push 4
pop eax
add edx, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp + 0xc], edx
mov edx, ebx
cmp edi, 0xa
jge 0x54faa7
cmp dword [edx + edi*4 + 0x2c], 0xffffffff
jne 0x54fa99
mov dword [edx + edi*4 + 0x2c], ecx
mov edi, dword [ebp + 0xc]
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
jmp 0x54e08a
mov edi, dword [ebp + 0xc]
mov dword [edi], ecx
add edi, eax
mov dword [ebp + 0xc], edi
jmp 0x54fa9c
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 4]
jmp 0x54f7da
cmp dword [ebp - 0x38], 0
lea esi, [eax + 1]
movzx edx, byte [eax]
je 0x54f7da
cmp edx, 0xc0
jb 0x54f7da
test dl, 0x20
jne 0x54faf6
movzx eax, byte [esi]
and edx, 0x1f
shl edx, 6
and eax, 0x3f
or edx, eax
inc esi
jmp 0x54f7da
test dl, 0x10
jne 0x54fb1d
movzx eax, byte [esi]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 2
jmp 0x54f7da
push 4
test dl, 8
jne 0x54fb52
movzx eax, byte [esi]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x54f7dc
movzx ecx, byte [esi]
pop eax
push 0x3f
pop ebx
and ecx, ebx
push 4
test al, dl
jne 0x54fb95
movzx eax, byte [esi + 1]
and edx, 3
shl edx, 6
and eax, ebx
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
and eax, ebx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, ebx
shl edx, 6
mov ebx, dword [ebp - 4]
or edx, eax
pop ecx
add esi, ecx
jmp 0x54f7dd
xor eax, eax
inc eax
and edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, ebx
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
and eax, ebx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, ebx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, ebx
shl edx, 6
mov ebx, dword [ebp - 4]
or edx, eax
add esi, 5
jmp 0x54f7dc
mov edi, dword [ebp - 4]
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov eax, edi
sub eax, esi
cmp eax, 6
jl 0x54fc7d
push 6
push 0x5bd0dc
push esi
call fcn.00554cd6
add esp, 0xc
test eax, eax
je 0x54fc14
push 6
push str._:_:__
push esi
call fcn.00554cd6
add esp, 0xc
test eax, eax
jne 0x54fc7d
mov ecx, dword [ebp + 0xc]
push 4
pop eax
push 4
mov dword [ecx], 0x80180005
add ecx, eax
cmp byte [esi + 2], 0x3c
lea eax, [ecx + 4]
jne 0x54fc36
mov dword [ecx], 0x80230000
pop ecx
jmp 0x54fc4a
mov dword [ecx], 0x80250000
xor edx, edx
mov ecx, dword [ebp + 0x10]
inc edx
mov dword [ecx], edx
and dword [eax], 0
pop ecx
add eax, ecx
mov edx, 0x20000
lea edi, [eax + 4]
test dword [ebp - 0x18], edx
jne 0x54fc5f
mov dword [eax], 0x8018000b
jmp 0x54fc6d
mov dword [eax], 0x80180010
mov dword [edi], 0x80000
add edi, ecx
mov dword [edi], 0x80190000
add edi, ecx
add esi, 6
jmp 0x54e244
cmp esi, edi
jae 0x54fca5
mov al, byte [esi]
cmp al, 0x3a
je 0x54fc8f
cmp al, 0x2e
je 0x54fc8f
cmp al, 0x3d
jne 0x54fca5
lea eax, [ebp - 0x50]
push eax
push edi
push esi
call fcn.00549c97
add esp, 0xc
test eax, eax
jne 0x5505fe
xor ecx, ecx
mov dword [ebp - 0xc], ecx
jmp 0x54fe3c
movzx ebx, byte [esi]
inc esi
cmp dword [ebp - 0x38], 0
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov ecx, eax
mov dword [ebp + 8], esi
mov edx, esi
mov edi, esi
je 0x54fdcb
cmp ebx, 0xc0
jb 0x54fdcb
test al, 0x20
jne 0x54fcf3
movzx ebx, byte [esi]
and eax, 0x1f
and ebx, 0x3f
shl eax, 6
or ebx, eax
inc esi
mov edx, esi
mov edi, esi
jmp 0x54fdc3
test al, 0x10
jne 0x54fd16
movzx ebx, byte [esi]
and eax, 0xf
and ebx, 0x3f
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 2
jmp 0x54fcea
test al, 8
jne 0x54fd45
movzx ebx, byte [esi]
and eax, 7
and ebx, 0x3f
shl eax, 6
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x54fcea
push 4
pop ecx
push 0x3f
test cl, al
movzx ecx, byte [esi]
pop edx
jne 0x54fd84
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, edx
and ecx, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, edx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, edx
shl ebx, 6
or ebx, eax
push 4
pop eax
add esi, eax
jmp 0x54fdbf
xor eax, eax
and ecx, edx
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, edx
or ebx, eax
add esi, 5
mov edx, esi
mov edi, edx
mov dword [ebp - 0x14], ebx
mov ecx, ebx
mov dword [ebp + 8], esi
cmp ecx, 0x5c
jne 0x54fe0a
cmp edi, dword [ebp - 4]
jae 0x54fde2
cmp byte [esi], 0x45
jne 0x54fde2
mov edi, dword [ebp - 4]
lea esi, [edx + 1]
jmp 0x54fe05
mov edi, dword [ebp - 4]
mov eax, edi
sub eax, edx
cmp eax, 3
jl 0x54fe46
push 3
push 0x5bd0ec
push esi
call fcn.00554cd6
add esp, 0xc
test eax, eax
jne 0x54fe46
add esi, 3
mov dword [ebp + 8], esi
jmp 0x54fe39
test dword [ebp - 0x18], 0x1000000
je 0x54fe1d
cmp ecx, 0x20
je 0x54fe36
cmp ecx, 9
je 0x54fe36
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x54fe49
cmp ebx, 0x5e
jne 0x54fe49
mov edi, dword [ebp - 4]
xor eax, eax
lea ecx, [eax + 1]
mov dword [ebp - 0xc], ecx
jmp 0x54fe3c
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
cmp esi, edi
jb 0x54fcaf
jmp 0x54fe49
mov ecx, dword [ebp - 0xc]
cmp ebx, 0x5d
jne 0x54fe7a
mov edx, dword [ebp + 0x14]
xor eax, eax
inc eax
test byte [edx + 0x6c], al
je 0x54fe7a
test ecx, ecx
mov edi, 0x800c0000
mov eax, 0x800b0000
cmovne eax, edi
mov edi, dword [ebp + 0xc]
push 4
mov dword [edi], eax
pop eax
add edi, eax
mov dword [ebp + 0xc], edi
jmp 0x54e08a
test ecx, ecx
mov eax, 0x800a0000
mov ecx, dword [ebp + 0xc]
mov edx, 0x800e0000
cmovne eax, edx
push 4
mov dword [ecx], eax
pop eax
add ecx, eax
xor eax, eax
mov dword [ebp + 0xc], ecx
xor ecx, ecx
inc eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x44]
jmp 0x54fea9
mov ecx, dword [ebp - 0xc]
xor edx, edx
lea edi, [edx + 1]
test eax, eax
je 0x54ff22
cmp ebx, 0x5c
jne 0x550390
cmp esi, dword [ebp - 4]
jae 0x550390
cmp byte [esi], 0x45
jne 0x550390
and dword [ebp - 0x44], edx
inc esi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
push 4
pop ecx
cmp esi, dword [ebp - 4]
jae 0x55064c
movzx ebx, byte [esi]
inc esi
cmp dword [ebp - 0x38], 0
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp + 8], esi
je 0x5504d4
cmp ebx, 0xc0
jb 0x5504d4
test bl, 0x20
jne 0x5503ec
movzx eax, byte [esi]
and ebx, 0x1f
shl ebx, 6
and eax, 0x3f
or ebx, eax
inc esi
jmp 0x5504cc
mov edx, dword [ebp - 0x18]
test edx, 0x1000000
je 0x54ff37
cmp ebx, 0x20
je 0x54fed1
cmp ebx, 9
je 0x54fed1
cmp ebx, 0x5b
jne 0x550056
mov edx, dword [ebp - 4]
mov eax, edx
sub eax, esi
cmp eax, 3
jl 0x550390
mov al, byte [esi]
cmp al, 0x3a
je 0x54ff62
cmp al, 0x2e
je 0x54ff62
cmp al, 0x3d
jne 0x550390
lea eax, [ebp - 0x50]
push eax
push edx
push esi
call fcn.00549c97
add esp, 0xc
test eax, eax
je 0x55038d
xor edx, edx
xor edi, edi
inc edx
cmp dword [ebp - 0xc], edx
je 0x55063b
cmp byte [esi], 0x3a
jne 0x55061a
inc esi
mov ecx, esi
cmp byte [esi], 0x5e
jne 0x54ff9c
inc esi
mov edi, edx
mov ecx, esi
mov ebx, dword [ebp - 0x50]
mov eax, ebx
sub eax, ecx
push eax
push esi
call fcn.00549c4d
mov edx, eax
pop ecx
pop ecx
test edx, edx
js 0x550610
mov ecx, dword [ebp - 4]
lea esi, [ebx + 2]
dec ecx
cmp esi, ecx
jae 0x54ffd0
cmp byte [esi], 0x2d
jne 0x54ffd0
cmp byte [esi + 1], 0x5d
jne 0x55063b
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, 0x20000
test dword [ebp - 0x18], eax
je 0x55003f
mov eax, dword [edx*8 + 0x5eef58]
mov ecx, dword [edx*8 + 0x5eef5c]
test eax, eax
js 0x550019
xor edx, edx
shl eax, 0x10
inc edx
or eax, ecx
xor edi, edx
mov edx, dword [ebp + 0xc]
sub edi, 0x7fe7fff1
push 4
pop ebx
mov dword [edx], edi
mov edi, edx
add edi, ebx
mov dword [edi], eax
add edi, ebx
mov dword [ebp + 0xc], edi
jmp 0x54fed4
test ecx, ecx
je 0x55003f
xor eax, eax
inc eax
xor edi, eax
mov eax, dword [ebp + 0xc]
sub edi, 0x7fe7ffee
push 4
pop ecx
mov dword [eax], edi
mov edi, eax
mov edx, dword [ebp - 0xc]
add edi, ecx
mov dword [ebp + 0xc], edi
jmp 0x54feda
lea eax, [edi + 0x801c]
mov edi, dword [ebp + 0xc]
shl eax, 0x10
push 4
pop ecx
mov dword [edi], eax
add edi, ecx
mov dword [edi], edx
jmp 0x550032
cmp ebx, 0x2d
jne 0x550090
push 2
pop eax
cmp ecx, eax
jb 0x550390
mov edi, dword [ebp + 0xc]
cmp ecx, 3
mov ecx, 0x801f0000
mov eax, 0x801e0000
cmove eax, ecx
push 4
mov dword [edi], eax
pop ecx
add edi, ecx
xor eax, eax
lea edx, [eax + 1]
mov dword [ebp + 0xc], edi
mov dword [ebp - 0xc], edx
jmp 0x54feda
cmp ebx, 0x5c
jne 0x550390
mov eax, dword [ebp + 0x14]
xor ecx, ecx
push eax
inc ecx
mov dword [ebp - 0x48], esi
push ecx
mov eax, dword [eax]
mov edi, esi
mov dword [ebp - 0x50], edi
mov ebx, esi
push dword [eax + 0x24]
lea eax, [ebp - 0x10]
push edx
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 4]
lea eax, [ebp + 8]
push eax
call fcn.00548c86
mov ecx, dword [ebp - 0x10]
add esp, 0x20
mov esi, eax
test ecx, ecx
je 0x5501fe
test byte [ebp - 0x74], 2
je 0x550626
mov esi, edi
cmp ebx, dword [ebp - 4]
jb 0x5500ee
push 0x5c
pop ebx
jmp 0x55038b
mov esi, dword [ebp - 0x48]
movzx ebx, byte [edi]
inc esi
cmp dword [ebp - 0x38], 0
je 0x55038b
cmp ebx, 0xc0
jb 0x55038b
test bl, 0x20
jne 0x550124
movzx eax, byte [esi]
and ebx, 0x1f
shl ebx, 6
and eax, 0x3f
or ebx, eax
inc esi
jmp 0x55038b
test bl, 0x10
jne 0x55014b
movzx eax, byte [esi]
and ebx, 0xf
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 2
jmp 0x55038b
test bl, 8
jne 0x55017e
movzx eax, byte [esi]
and ebx, 7
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x55038b
movzx ecx, byte [esi]
push 4
pop eax
push 0x3f
pop edx
and ecx, edx
test al, bl
jne 0x5501c0
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and eax, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, edx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, edx
shl ebx, 6
or ebx, eax
push 4
pop eax
add esi, eax
jmp 0x55038b
xor eax, eax
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, edx
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, edx
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, edx
or ebx, eax
add esi, 5
jmp 0x55038b
mov eax, esi
sub eax, 0
je 0x550385
push 4
pop ebx
sub eax, ebx
je case.0x550265.13
sub eax, 1
je 0x550380
sub eax, dword [ebp - 0x40]
je case.0x550265.13
sub eax, 5
je case.0x550265.13
sub eax, 3
je 0x550378
sub eax, 1
je 0x550372
xor ecx, ecx
inc ecx
cmp dword [ebp - 0xc], ecx
je 0x550638
xor edx, edx
lea eax, [esi - 6]
mov dword [ebp - 0xc], edx
cmp eax, 0xf
ja case.0x550265.13
movzx eax, byte [eax + 0x55071d]
jmp dword [eax*4 + 0x550709]
mov edi, dword [ebp + 0xc]
lea eax, [esi - 0x7fe80000]
mov dword [edi], eax
jmp 0x550346
mov eax, 0x20000
test dword [ebp - 0x18], eax
je case.0x550265.18
cmp esi, 7
je 0x55029a
cmp esi, 9
je 0x55029a
mov eax, 0x8018000f
cmp esi, 0xb
jne 0x55029f
mov eax, 0x80180010
mov edi, dword [ebp + 0xc]
mov dword [edi], eax
add edi, ebx
mov dword [ebp + 0xc], edi
sub esi, 6
je 0x5502db
sub esi, 1
je 0x5502db
sub esi, 1
je 0x5502d3
sub esi, 1
je 0x5502d3
sub esi, 1
je 0x5502cb
sub esi, 1
jne 0x55034b
mov dword [edi], 0x80000
jmp 0x550346
mov dword [edi], 0x60000
jmp 0x550346
mov dword [edi], 0x3000d
jmp 0x550346
push dword [ebp + 0x14]
and dword [ebp - 0x24], edx
lea eax, [ebp - 0x10]
and dword [ebp - 0x1c], edx
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0054d933
add esp, 0x18
test eax, eax
je 0x550560
cmp dword [ebp - 0x94], 0
je 0x550327
xor eax, eax
cmp esi, 0xf
sete al
lea esi, [eax + 0xf]
mov edi, dword [ebp + 0xc]
lea eax, [esi - 0x7fe80000]
movzx ecx, word [ebp - 0x24]
mov edx, dword [ebp - 0xc]
shl ecx, 0x10
mov dword [edi], eax
add edi, ebx
movzx eax, word [ebp - 0x1c]
or ecx, eax
mov dword [edi], ecx
add edi, ebx
mov dword [ebp + 0xc], edi
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 8]
dec eax
cmp esi, eax
jae 0x54fed7
cmp byte [esi], 0x2d
jne 0x54fed7
cmp byte [esi + 1], 0x5d
jne 0x55063b
jmp 0x54fed7
xor eax, eax
inc eax
mov dword [ebp - 0x44], eax
mov esi, dword [ebp + 8]
jmp 0x54fed1
push 8
pop ebx
jmp 0x550388
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp + 8]
xor edi, edi
mov ecx, dword [ebp - 0xc]
xor eax, eax
inc eax
cmp ecx, eax
jne 0x5503d4
mov eax, dword [ebp + 0xc]
cmp ebx, dword [eax - 8]
jne 0x5503a8
push 4
mov edi, eax
pop ecx
sub edi, ecx
jmp 0x5503cd
jb 0x550645
test edi, edi
mov edi, dword [ebp + 0xc]
jne 0x5503c6
mov eax, 0x801f0000
cmp dword [edi - 4], eax
jne 0x5503c6
mov dword [edi - 4], 0x801e0000
push 4
pop ecx
mov dword [edi], ebx
add edi, ecx
xor edx, edx
jmp 0x550085
lea edx, [edi + 2]
mov edi, dword [ebp + 0xc]
push 4
pop ecx
mov dword [ebp - 0xc], edx
mov dword [edi], ebx
add edi, ecx
mov dword [ebp + 0xc], edi
jmp 0x54feda
test bl, 0x10
jne 0x550413
movzx eax, byte [esi]
and ebx, 0xf
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 2
jmp 0x5504cc
test bl, 8
jne 0x550446
movzx eax, byte [esi]
and ebx, 7
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x5504cc
test cl, bl
movzx ecx, byte [esi]
jne 0x55048b
movzx eax, byte [esi + 1]
and ebx, 3
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 2]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl ebx, 6
push 4
or ebx, eax
pop ecx
add esi, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp + 8], esi
mov eax, ebx
jmp 0x5504d7
xor eax, eax
and ecx, 0x3f
inc eax
and ebx, eax
movzx eax, byte [esi + 1]
shl ebx, 6
or ecx, ebx
shl ecx, 6
push 0x3f
pop ebx
and eax, ebx
or ecx, eax
movzx eax, byte [esi + 2]
and eax, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
and eax, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, ebx
mov ebx, ecx
or ebx, eax
add esi, 5
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp + 8], esi
push 4
pop ecx
cmp eax, 0x5d
mov eax, dword [ebp - 0x44]
jne 0x54fea6
test eax, eax
jne 0x54fea6
inc eax
cmp edx, eax
jne 0x5504f7
mov dword [edi - 4], 0x2d
mov dword [edi], 0x800d0000
add edi, ecx
jmp 0x54e244
mov ecx, 0x8c
jmp 0x54efde
dec esi
mov ecx, 0xb0
jmp 0x54efde
push 0x76
jmp 0x54efdd
push 0x7a
jmp 0x550594
cmp edx, 0x80270000
je 0x550538
cmp edx, 0x80280000
jne 0x54e549
mov ecx, 0xc6
jmp 0x54efde
mov ecx, 0xbd
jmp 0x54efde
mov ecx, 0xc3
jmp 0x54efde
mov ecx, 0xa6
jmp 0x54efde
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
jmp 0x54efde
push 0x73
jmp 0x54efdd
mov ecx, 0xb3
jmp 0x54efde
push 0x7c
jmp 0x54efdd
push 0x73
jmp 0x550594
mov ecx, 0xc2
dec esi
jmp 0x54efde
push 0x6f
dec esi
jmp 0x54efdd
mov ecx, 0xb8
jmp 0x54efde
mov ecx, 0x8f
jmp 0x550626
mov ecx, 0xa5
jmp 0x550626
mov esi, dword [ebp + 8]
push 0x79
jmp 0x54efdd
mov ecx, 0x95
jmp 0x550626
mov esi, dword [ebp + 8]
mov ecx, 0xc5
jmp 0x54efde
mov ecx, 0x8d
jmp 0x54efde
mov ecx, 0xb5
mov esi, edx
jmp 0x54efde
mov ecx, 0x8a
jmp 0x54efde
mov ecx, 0x8b
jmp 0x54efde
push 0x6d
jmp 0x550594
mov al, byte [esi]
xor ecx, ecx
dec esi
cmp al, 0x3a
setne cl
add ecx, 0x70
jmp 0x54efde
mov ecx, 0x82
jmp 0x54efde
push 0x71
jmp 0x550594
mov ecx, 0xab
mov esi, dword [ebp + 8]
jmp 0x54efde
mov esi, dword [ebp + 8]
push 0x6b
jmp 0x550594
mov esi, dword [ebp + 8]
mov ecx, 0x96
jmp 0x54efde
push 0x6c
jmp 0x550594
push 0x6a
jmp 0x54efdd
push 0x77
jmp 0x54efdd
cmp dword [ebp - 0x64], 0
je 0x55066a
mov ecx, 0xa0
jmp 0x54efde
push 4
pop ebx
push edx
push edi
push dword [ebp - 0x68]
lea eax, [ebp - 0x54]
push eax
push esi
call fcn.0054ddbf
add esp, 0x14
cmp dword [ebp - 0x98], 0
je 0x550698
mov dword [eax], 0x80190000
add eax, ebx
mov dword [eax], 0x80160000
jmp 0x5506af
cmp dword [ebp - 0x9c], 0
je 0x5506b1
mov dword [eax], 0x80190000
add eax, ebx
mov dword [eax], 0x80180005
add eax, ebx
cmp eax, dword [ebp - 0x78]
jb 0x5506c0
mov ecx, 0xa3
jmp 0x54efde
cmp word [ebp - 8], 0
mov dword [eax], 0x80000000
jne 0x54efdb
xor eax, eax
jmp 0x54efe9