Function at 0x5324e0
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x144
mov eax, dword [0x597f98]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x158]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x160]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x164]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x170]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax]
mov eax, ecx
shr eax, 0xb
and eax, 1
mov dword [esp + 0x40], eax
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0xdc], eax
xor eax, 1
xor ebx, ebx
mov dword [esp + 0xcc], eax
mov eax, 0xfffffffe
mov ebp, dword [edx]
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], eax
mov eax, ecx
mov edi, dword [esp + 0x178]
and eax, 1
mov dword [esp + 0xd4], esi
mov esi, dword [esi]
mov dword [esp + 0xec], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xc8], ebp
mov dword [esp + 0x74], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test ebx, ebx
jne 0x532655
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x532655
mov esi, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x8c], ebx
movzx ebx, byte [esi]
mov eax, dword [esp + 0x4c]
test eax, eax
mov edx, dword [edi + 0x3c]
je 0x53270a
mov ecx, dword [edi + 0x10]
lea edx, [edx + ecx - 0x64]
cmp ebp, edx
ja 0x5363bf
mov ecx, dword [esp + 0xb4]
cmp ebp, ecx
jae 0x532684
mov dword [esp + 0x14], ecx
mov ebp, ecx
mov eax, dword [eax]
mov edx, ebp
sub edx, ecx
mov ecx, 0x7fffffeb
sub ecx, eax
cmp ecx, edx
jl 0x5363ce
sub eax, dword [esp + 0xb4]
mov edx, dword [esp + 0x4c]
add eax, ebp
mov dword [edx], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5326f0
cmp eax, dword [esp + 0xc8]
jbe 0x5326fd
mov esi, dword [esp + 0xc8]
mov edi, eax
mov ecx, ebp
sub ecx, edi
mov eax, esi
call fcn.0052f370
mov eax, esi
sub eax, edi
mov edi, dword [esp + 0x18]
add ebp, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], ebp
mov dword [esp + 0xb4], ebp
jmp 0x532716
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x14], ecx
mov ebp, ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb4], ebp
jmp 0x532716
add edx, dword [edi + 0x10]
cmp dword [edi + 0x20], edx
ja 0x5363dd
cmp dword [esp + 0x74], 0
je 0x532864
test ebx, ebx
je 0x532864
cmp ebx, 0x5c
jne 0x532747
cmp byte [esi + 1], 0x45
jne 0x532747
add esi, 1
mov dword [esp + 0x74], 0
add esi, 1
jmp 0x53262f
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x53277f
test eax, eax
jne 0x532774
xor edx, edx
mov dh, byte [ecx + 2]
mov eax, esi
mov dl, byte [ecx + 3]
sub eax, edx
sub eax, dword [edi + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
mov esi, dword [esp + 0x10]
mov dword [esp + 0x98], 0
test dword [esp + 0x50], 0x4000
je case.0x532a49.1
mov byte [ebp], 0x76
mov byte [ebp + 1], 0xff
mov ecx, esi
lea eax, [ebp + 1]
mov edx, ecx
sub edx, dword [edi + 0x18]
add eax, 1
sar edx, 8
mov byte [eax], dl
sub cl, byte [edi + 0x18]
mov byte [eax + 2], 0
mov byte [eax + 1], cl
mov byte [eax + 3], 0
mov esi, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x98], ebp
mov dword [esp + 0x14], eax
mov ebp, eax
cmp dword [esp + 0x40], 0
mov ecx, 1
mov byte [esp + 0x100], bl
je 0x53280b
cmp ebx, 0xc0
jb 0x53280b
mov al, byte [esi + ecx]
add esi, ecx
and al, 0xc0
cmp al, 0x80
jne 0x53280b
jmp 0x5327f0
mov dword [esp + 0x10], esi
mov dl, byte [esi]
add esi, 1
mov byte [esp + ecx + 0x100], dl
mov al, byte [esi]
and al, 0xc0
add ecx, 1
cmp al, 0x80
je 0x5327f0
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
cmp dword [esp + 0x40], 0
mov dword [esp + 0x20], ebp
mov dword [esp + 0x70], eax
je 0x53627b
test byte [esp + 0x50], 1
je 0x536280
movzx ebx, byte [esp + 0x100]
cmp ebx, 0xc0
jb 0x536206
test bl, 0x20
jne 0x536154
movzx edx, byte [esp + 0x101]
and ebx, 0x1f
and edx, 0x3f
shl ebx, 6
or ebx, edx
jmp 0x536206
mov eax, dword [esp + 0x50]
and eax, 8
mov dword [esp + 0x54], eax
je 0x532944
mov eax, dword [edi + 0xc]
test byte [ebx + eax], 1
je 0x532890
mov edi, edi
add esi, 1
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test byte [eax + ebx], 1
jne 0x532880
cmp ebx, 0x23
jne 0x532944
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x5328dd
mov ecx, dword [edi + 0x84]
test ecx, ecx
je 0x5328e2
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x532909
mov edx, dword [esp + 0x40]
push edx
lea edx, [edi + 0x88]
push edx
push eax
push ecx
push esi
call fcn.00546f40
test eax, eax
mov esi, dword [esp + 0x10]
je 0x532909
add esi, dword [edi + 0x88]
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
jmp 0x532875
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x532909
cmp al, byte [edi + 0x8c]
jne 0x532909
cmp ecx, 1
je 0x5328d3
mov al, byte [esi + 1]
cmp al, byte [edi + 0x8d]
je 0x5328d3
add esi, 1
cmp dword [esp + 0x40], 0
mov dword [esp + 0x10], esi
je 0x532932
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x532932
add esi, 1
mov dword [esp + 0x10], esi
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
je 0x532921
mov al, byte [esi]
test al, al
jne 0x5328a6
movzx ebx, al
jmp 0x532875
cmp ebx, 0x2a
je 0x532a50
cmp ebx, 0x2b
je 0x532a50
cmp ebx, 0x3f
je 0x532a50
cmp ebx, 0x7b
jne 0x532974
lea eax, [esi + 1]
call fcn.0052f440
test eax, eax
jne 0x532a50
xor ecx, ecx
cmp dword [esp + 0x98], ecx
mov dword [esp + 0x2c], ecx
je 0x5329e2
cmp dword [esp + 0x8c], ecx
jne 0x5329e2
mov eax, dword [esp + 0xc0]
mov edx, eax
sub eax, 1
test edx, edx
mov dword [esp + 0xc0], eax
jg 0x5329e2
cmp dword [esp + 0x4c], ecx
jne 0x5329d7
mov eax, dword [esp + 0x98]
xor edx, edx
mov dh, byte [eax + 2]
mov dl, byte [eax + 3]
mov eax, esi
mov esi, dword [esp + 0x98]
sub eax, edx
sub eax, dword [edi + 0x18]
mov edx, eax
sar edx, 8
mov byte [esi + 4], dl
mov edx, esi
mov byte [edx + 5], al
mov esi, dword [esp + 0x10]
mov dword [esp + 0x98], 0
test dword [esp + 0x50], 0x4000
je 0x532a39
test ecx, ecx
jne 0x532a39
cmp dword [esp + 0x8c], ecx
jne 0x532a39
mov byte [ebp], 0x76
mov byte [ebp + 1], 0xff
mov ecx, esi
lea eax, [ebp + 1]
mov edx, ecx
sub edx, dword [edi + 0x18]
add eax, 1
sar edx, 8
mov byte [eax], dl
sub cl, byte [edi + 0x18]
mov byte [eax + 2], 0
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x2c]
mov byte [eax + 3], 0
mov esi, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x98], ebp
mov dword [esp + 0x14], eax
mov ebp, eax
cmp ebx, 0x7c
ja case.0x532a49.1
movzx eax, byte [ebx + 0x5367f8]
jmp dword [eax*4 + 0x5367c4]
mov ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x5329e2
test byte [esp + 0x50], 2
mov dword [esp + 0x20], 0
je 0x532a96
cmp dword [esp + 0x3c], 0xfffffffe
jne 0x532a7f
or eax, 0xffffffff
mov dword [esp + 0x3c], eax
mov dword [esp + 0x84], eax
mov byte [ebp], 0x1c
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
mov byte [ebp], 0x1b
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
test byte [esp + 0x50], 2
mov dword [esp + 0x20], 0
setne cl
add cl, 0x19
mov byte [ebp], cl
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x532ae6
or eax, 0xffffffff
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
shr edx, 2
and dl, 1
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
or dl, 0xc
mov byte [ebp], dl
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], ebp
add ebp, 1
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
test dword [edi + 0x60], 0x2000000
je case.0x532a49.1
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x40
jmp 0x53679b
mov ebx, 6
lea eax, [esi + 1]
mov ecx, str._:_:__
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x532b94
test dl, dl
je 0x532b9e
add eax, 1
add ecx, 1
sub ebx, 1
jne 0x532b65
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b__w_
sub esi, 1
add esi, 1
jmp 0x53262f
movzx ecx, byte [ecx]
movzx eax, byte [eax]
sub eax, ecx
jne 0x532bb8
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b__w_
sub esi, 1
add esi, 1
jmp 0x53262f
mov ebx, 6
lea eax, [esi + 1]
mov ecx, 0x5744b4
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x532bf4
test dl, dl
je 0x532bfe
add eax, 1
add ecx, 1
sub ebx, 1
jne 0x532bc5
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b___w_
sub esi, 1
add esi, 1
jmp 0x53262f
movzx edx, byte [ecx]
movzx eax, byte [eax]
sub eax, edx
jne 0x532c18
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b___w_
sub esi, 1
add esi, 1
jmp 0x53262f
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x70], eax
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x532c35
cmp al, 0x2e
je 0x532c35
cmp al, 0x3d
jne 0x532c50
lea eax, [esp + 0x94]
push eax
mov eax, esi
call fcn.00531f00
test eax, eax
mov esi, dword [esp + 0x10]
jne 0x536469
xor ecx, ecx
mov dword [esp + 0x58], ecx
add esi, 1
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
cmp ebx, 0x5c
mov dword [esp + 0x28], ebx
jne 0x532cb9
cmp byte [esi + 1], 0x45
lea eax, [esi + 1]
jne 0x532c76
mov esi, eax
jmp 0x532c56
mov edx, 3
mov edi, 0x5744b0
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x532ca2
test cl, cl
je 0x532cac
add eax, 1
add edi, 1
sub edx, 1
jne 0x532c80
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
add esi, 3
jmp 0x532c56
movzx ecx, byte [edi]
movzx eax, byte [eax]
sub eax, ecx
jne 0x532d1a
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
add esi, 3
jmp 0x532c56
test ecx, ecx
jne 0x532cc7
cmp ebx, 0x5e
jne 0x532cc7
lea ecx, [ebx - 0x5d]
jmp 0x532c52
cmp ebx, 0x5d
jne 0x532d1a
test dword [edi + 0x60], 0x2000000
je 0x532d1a
mov eax, dword [esp + 0x3c]
neg ecx
sbb cl, cl
and cl, 0x70
add cl, 0x9d
mov byte [ebp], cl
add ebp, 1
cmp eax, 0xfffffffe
mov dword [esp + 0x14], ebp
jne 0x532cf9
or eax, 0xffffffff
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x84], eax
add esi, 1
jmp 0x53262f
xor eax, eax
cmp ebx, eax
lea ecx, [ebp + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
je 0x5364da
jmp 0x532d80
cmp dword [esp + 0x40], 0
je 0x532eb1
cmp ebx, 0xc0
jb 0x532eb1
movzx ebx, byte [esi]
cmp ebx, 0xc0
mov dword [esp + 0x28], ebx
jb 0x532eb1
test bl, 0x20
jne 0x532dc6
movzx eax, byte [esi + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 1
jmp 0x532ea9
test bl, 0x10
jne 0x532df0
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
and ebx, 0xf
and ecx, 0x3f
shl ebx, 6
or ecx, ebx
shl ecx, 6
and edx, 0x3f
or ecx, edx
mov ebx, ecx
add esi, 2
jmp 0x532ea9
test bl, 8
jne 0x532e26
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 3]
and eax, 0x3f
and ebx, 7
shl ebx, 6
or eax, ebx
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
mov ebx, eax
add esi, 3
jmp 0x532ea9
test bl, 4
jne 0x532e65
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 3]
and eax, 0x3f
and ebx, 3
shl ebx, 6
or eax, ebx
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + 4]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
mov ebx, eax
add esi, 4
jmp 0x532ea9
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
movzx ecx, byte [esi + 3]
and edx, 0x3f
and ebx, 1
shl ebx, 6
or edx, ebx
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and ecx, 0x3f
or edx, ecx
movzx ecx, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
shl edx, 6
and ecx, 0x3f
or edx, ecx
mov ebx, edx
add esi, 5
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x54]
cmp edx, eax
jbe 0x532ec5
mov dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x532ed9
cmp edx, eax
jbe 0x532ed9
sub edx, eax
add dword [ecx], edx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x74]
test edx, edx
je 0x532f04
cmp ebx, 0x5c
jne 0x533487
cmp byte [esi + 1], 0x45
jne 0x533487
mov dword [esp + 0x74], 0
add esi, 1
jmp 0x53376e
cmp ebx, 0x5b
jne 0x533195
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x532f20
cmp al, 0x2e
je 0x532f20
cmp al, 0x3d
jne 0x533487
lea edx, [esp + 0x94]
push edx
mov eax, esi
call fcn.00531f00
test eax, eax
mov esi, dword [esp + 0x10]
je 0x533483
cmp byte [esi + 1], 0x3a
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 8]
mov dword [esp + 0x6c], 0
jne 0x536484
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5e
jne 0x532f73
mov eax, 1
add esi, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x94]
sub ecx, esi
push ecx
push esi
call fcn.00531f60
mov edi, eax
test edi, edi
jl 0x536493
mov eax, dword [esp + 0x50]
test al, 1
je 0x532f9c
cmp edi, 2
jg 0x532f9c
xor edi, edi
test eax, 0x20000000
mov edx, dword [esp + 0x6c]
je 0x533050
mov eax, edx
neg eax
sbb eax, eax
and eax, 0xe
add eax, edi
mov eax, dword [eax*4 + 0x597e78]
test eax, eax
je 0x532fda
mov edx, dword [esp + 0x94]
add edx, 1
mov dword [esp + 0x8c], edx
lea esi, [eax - 1]
jmp 0x53376e
mov eax, edi
sub eax, 8
je 0x5330a4
sub eax, 1
je 0x5330ab
sub eax, 1
je 0x5330b2
cmp dword [esp + 0x58], 0
jne 0x533050
test edx, edx
je 0x533050
cmp dword [esp + 0x2c], 0
jne 0x533016
mov eax, dword [esp + 0x94]
cmp byte [eax + 2], 0x5d
je 0x533050
mov ecx, dword [esp + 0x30]
mov byte [ecx], 2
mov eax, dword [esp + 0x30]
add eax, 1
push eax
push 0x100
mov dword [esp + 0x38], eax
call fcn.005472f0
mov ecx, dword [esp + 0x30]
add ecx, eax
push ecx
push 0x10ffff
mov dword [esp + 0x38], ecx
call fcn.005472f0
add dword [esp + 0x30], eax
mov edx, dword [esp + 0x6c]
lea eax, [edi + edi*2]
mov esi, dword [eax*4 + 0x573210]
add esi, ebx
mov ecx, 8
lea edi, [esp + 0x130]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax*4 + 0x573214]
test ecx, ecx
mov esi, dword [eax*4 + 0x573218]
jl 0x533114
xor eax, eax
add ecx, ebx
test esi, esi
jl 0x533100
jmp 0x533090
mov bl, byte [ecx + eax]
or byte [esp + eax + 0x130], bl
add eax, 1
cmp eax, 0x20
jb 0x533090
jmp 0x533114
mov ecx, 0xb
jmp 0x5330b7
mov ecx, 0xc
jmp 0x5330b7
mov ecx, 0xd
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x94]
test edx, edx
setne dl
add dl, 3
mov byte [eax], dl
mov eax, dword [esp + 0x30]
mov edx, 1
add eax, edx
mov dword [esp + 0x30], eax
mov byte [eax], cl
mov eax, dword [esp + 0x30]
add eax, edx
mov dword [esp + 0x30], eax
mov byte [eax], 0
add dword [esp + 0x30], edx
mov dword [esp + 0x24], edx
add esi, edx
jmp 0x53376e
mov bl, byte [ecx + eax]
not bl
and byte [esp + eax + 0x130], bl
add eax, 1
cmp eax, 0x20
jb 0x533100
test esi, esi
jge 0x53311a
neg esi
cmp esi, 1
jne 0x533129
and byte [esp + 0x131], 0xc3
jmp 0x533136
cmp esi, 2
jne 0x533136
and byte [esp + 0x13b], 0x7f
xor eax, eax
test edx, edx
je 0x533160
lea esp, [esp]
mov cl, byte [esp + eax + 0x130]
not cl
or byte [esp + eax + 0x108], cl
add eax, 1
cmp eax, 0x20
jb 0x533140
jmp 0x533176
mov dl, byte [esp + eax + 0x130]
or byte [esp + eax + 0x108], dl
add eax, 1
cmp eax, 0x20
jb 0x533160
mov esi, dword [esp + 0x94]
add esi, 1
mov dword [esp + 0x34], 1
mov dword [esp + 0x44], 2
jmp 0x53376e
cmp ebx, 0x5c
jne 0x533487
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x40]
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
push ebx
push ecx
push edi
lea edx, [esp + 0xd0]
push edx
lea eax, [esp + 0x20]
push eax
mov ecx, 1
call fcn.0052f4c0
cmp dword [edi], 0
mov esi, eax
jne 0x536797
test esi, esi
jne 0x5331e6
mov ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0x10]
jmp 0x53347f
cmp esi, 5
jne 0x5331f7
lea ebx, [esi + 3]
mov esi, dword [esp + 0x10]
jmp 0x53347f
cmp esi, 0xc
je 0x5364a2
cmp esi, 0x1a
jne 0x53322a
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x53321d
cmp byte [esi + 2], 0x45
jne 0x53321d
add esi, 2
jmp 0x53376a
mov dword [esp + 0x74], 1
jmp 0x53376a
cmp esi, 0x19
je 0x533766
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov edi, 1
add dword [esp + 0x34], edi
mov ebp, 2
add dword [esp + 0x44], ebp
lea ecx, [esi - 6]
cmp ecx, 0x1c
ja case.0x53325f.12
movzx ecx, byte [ecx + 0x5368ac]
jmp dword [ecx*4 + 0x536878]
mov esi, dword [esi*4 + 0x597dec]
mov edx, dword [esp + 0x10]
sub esi, edi
sub dword [esp + 0x34], edi
mov dword [esp + 0x8c], edx
jmp 0x53376a
xor ecx, ecx
jmp 0x533290
mov dl, byte [eax + ecx + 0x40]
or byte [esp + ecx + 0x108], dl
add ecx, edi
cmp ecx, 0x20
jb 0x533290
jmp 0x533766
mov dword [esp + 0x38], edi
xor ecx, ecx
lea ecx, [ecx]
mov dl, byte [eax + ecx + 0x40]
not dl
or byte [esp + ecx + 0x108], dl
add ecx, edi
cmp ecx, 0x20
jb 0x5332b0
jmp 0x533766
xor ecx, ecx
jmp 0x5332d0
mov dl, byte [eax + ecx + 0xa0]
or byte [esp + ecx + 0x108], dl
add ecx, edi
cmp ecx, 0x20
jb 0x5332d0
jmp 0x533766
mov dword [esp + 0x38], edi
xor ecx, ecx
mov dl, byte [eax + ecx + 0xa0]
not dl
or byte [esp + ecx + 0x108], dl
add ecx, edi
cmp ecx, 0x20
jb 0x5332f0
jmp 0x533766
mov esi, eax
lea eax, [esp + 0x108]
xor edx, edx
sub esi, eax
lea esp, [esp]
lea ecx, [esp + edx + 0x108]
mov al, byte [esi + ecx]
or byte [ecx], al
add edx, edi
cmp edx, 0x20
jb 0x533320
jmp 0x533766
mov esi, eax
lea ecx, [esp + 0x108]
xor edx, edx
mov dword [esp + 0x38], edi
sub esi, ecx
lea esp, [esp]
lea ecx, [esp + edx + 0x108]
mov al, byte [esi + ecx]
not al
or byte [ecx], al
add edx, edi
cmp edx, 0x20
jb 0x533350
jmp 0x533766
push 0xffffffffffffffff
push 0x574628
push edx
push ebx
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x11c]
push edx
call fcn.005323c0
jmp 0x533766
push edx
push ebx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x114]
push ecx
mov eax, 0x574628
call fcn.00532430
jmp 0x533766
push 0xffffffffffffffff
push 0x574678
push edx
push ebx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x11c]
push eax
call fcn.005323c0
jmp 0x533766
push edx
push ebx
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x114]
push edx
mov eax, 0x574678
call fcn.00532430
jmp 0x533766
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x18]
push edx
lea edx, [esp + 0x78]
lea ecx, [esp + 0xf4]
call fcn.0052fc40
test eax, eax
je 0x536797
mov edx, dword [esp + 0x30]
xor eax, eax
cmp esi, 0x10
sete al
cmp eax, dword [esp + 0xe8]
sete cl
add cl, 3
mov byte [edx], cl
mov eax, dword [esp + 0x30]
movzx edx, byte [esp + 0x24]
mov ecx, edi
add eax, ecx
mov dword [esp + 0x30], eax
mov byte [eax], dl
mov eax, dword [esp + 0x30]
movzx edx, byte [esp + 0x6c]
add eax, ecx
mov dword [esp + 0x30], eax
mov byte [eax], dl
add dword [esp + 0x30], ecx
sub dword [esp + 0x34], ecx
mov dword [esp + 0x24], ecx
jmp 0x533766
test bl, 0x40
mov esi, dword [esp + 0x10]
jne 0x5364af
sub dword [esp + 0x34], edi
sub dword [esp + 0x44], ebp
movzx ebx, byte [esi]
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x74]
cmp byte [esi + 1], 0x5c
jne 0x5334a9
lea ecx, [ecx]
cmp byte [esi + 2], 0x45
jne 0x5334a5
add esi, 2
xor edx, edx
mov dword [esp + 0x10], esi
cmp byte [esi + 1], 0x5c
je 0x533490
mov dword [esp + 0x74], edx
cmp ebx, 0xd
mov ecx, esi
je 0x5334b5
cmp ebx, 0xa
jne 0x5334c0
mov eax, dword [esp + 0x18]
or dword [eax + 0x64], 0x800
test edx, edx
jne 0x533713
cmp byte [esi + 1], 0x2d
jne 0x533713
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x53352f
mov edi, edi
cmp byte [esi + 1], 0x45
jne 0x5334f4
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x5334e0
jmp 0x53352f
cmp byte [esi], 0x5c
jne 0x53352f
lea esp, [esp]
cmp byte [esi + 1], 0x51
jne 0x53352f
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x533526
cmp byte [esi + 1], 0x45
jne 0x533526
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x533500
jmp 0x53352f
mov edx, 1
mov dword [esp + 0x74], edx
mov al, byte [esi]
test al, al
je 0x53370d
test edx, edx
jne 0x533545
cmp al, 0x5d
je 0x53370d
cmp dword [esp + 0x40], 0
movzx ebx, al
mov dword [esp + 0x68], ebx
je 0x533637
cmp ebx, 0xc0
jb 0x533637
test bl, 0x20
jne 0x53357f
movzx eax, byte [esi + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 1
jmp 0x53362f
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x5335a7
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x53362d
test bl, 8
jne 0x5335ca
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x53362d
test bl, 4
jne 0x5335f9
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 4
jmp 0x53362d
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 5
mov ebx, ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x10], esi
test edx, edx
jne 0x5336c1
cmp ebx, 0x5c
jne 0x533683
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x40]
mov esi, dword [esp + 0x1c]
push ecx
push eax
push esi
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [ebx - 0x5b]
call fcn.0052f4c0
cmp dword [esi], 0
jne 0x536797
test eax, eax
je 0x5336b9
cmp eax, 5
jne 0x5364be
lea ebx, [eax + 3]
jmp 0x5336bd
cmp ebx, 0x5b
jne 0x5336c1
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x533697
cmp al, 0x2e
je 0x533697
cmp al, 0x3d
jne 0x5336c1
lea eax, [esp + 0x94]
push eax
mov eax, esi
call fcn.00531f00
test eax, eax
je 0x5336bd
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x53
jmp 0x536797
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ebx, eax
jb 0x5364cb
je 0x533713
cmp ebx, 0xd
mov dword [esp + 0x44], 2
je 0x5336e1
cmp ebx, 0xa
jne 0x5336ee
mov eax, dword [esp + 0x18]
or dword [eax + 0x64], 0x800
jmp 0x5336f2
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
push ebx
push ecx
push eax
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x11c]
push ecx
jmp 0x53375d
mov esi, ecx
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x44]
cmp eax, 2
jge 0x533723
add eax, 1
mov dword [esp + 0x44], eax
cmp dword [esp + 0x74], 0
jne 0x533740
cmp dword [esp + 0x24], 0
jne 0x533740
cmp eax, 1
jne 0x533740
cmp byte [esi + 1], 0x5d
je 0x5338c8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
push eax
push eax
mov eax, dword [esp + 0x58]
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x11c]
push edx
call fcn.005321a0
add dword [esp + 0x34], eax
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
add esi, 1
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test ebx, ebx
mov dword [esp + 0x28], ebx
jne 0x5337ae
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5364da
mov esi, eax
add esi, 1
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test ebx, ebx
mov dword [esp + 0x28], ebx
je 0x5364da
cmp ebx, 0x5d
jne 0x532d80
cmp dword [esp + 0x74], 0
jne 0x532d80
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x54]
cmp edx, esi
lea ecx, [ebx - 0x5c]
ja 0x5337d5
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x5337e5
or eax, 0xffffffff
mov dword [esp + 0x3c], eax
test ecx, ecx
mov edi, dword [esp + 0x88]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x6c], eax
je 0x533a5a
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x53382e
cmp dword [esp + 0x38], ecx
je 0x53382e
test dword [esp + 0x50], 0x20000000
je 0x533a5a
mov byte [edx], 0
add dword [esp + 0x30], 1
mov byte [ebp], 0x70
add ebp, 3
cmp dword [esp + 0x58], 0
setne al
test ecx, ecx
mov byte [ebp], al
je 0x533851
or al, 4
mov byte [ebp], al
cmp dword [esp + 0x34], 0
jle 0x533a29
or byte [ebp], 2
mov ecx, dword [esp + 0x30]
add ebp, 1
sub ecx, ebp
lea eax, [ebp + 0x20]
mov edi, ebp
call fcn.0052f370
cmp dword [esp + 0x58], 0
je 0x5338a8
cmp dword [esp + 0x24], 0
jne 0x5338a8
xor eax, eax
jmp 0x533890
mov cl, byte [esp + eax + 0x108]
not cl
mov byte [esp + eax + 0x108], cl
add eax, 1
cmp eax, 0x20
jb 0x533890
mov ecx, 8
lea esi, [esp + 0x108]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x30]
lea ecx, [edx + 0x20]
mov dword [esp + 0x14], ecx
jmp 0x533a33
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x64]
add esi, 1
cmp dword [esp + 0x58], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
je 0x5339e3
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x5338fa
or eax, 0xffffffff
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0x88]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x84], eax
je 0x533987
test byte [esp + 0x50], 1
je 0x533987
mov ecx, dword [esp + 0x28]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x576898]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x533945
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x578a98]
movzx eax, byte [eax*8 + 0x57521b]
test eax, eax
je 0x53398b
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov byte [ebp], 0xf
add ebp, 1
mov byte [ebp], 9
add ebp, 1
mov byte [ebp], al
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
mov ecx, dword [esp + 0x28]
test byte [esp + 0x50], 1
mov ebp, dword [esp + 0x14]
setne dl
add dl, 0x1f
mov byte [ebp], dl
add ebp, 1
cmp dword [esp + 0x40], 0
je 0x5339c9
cmp ecx, 0x7f
jbe 0x5339c9
push ebp
push ecx
call fcn.005472f0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add ebp, eax
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
mov edi, dword [esp + 0x18]
mov byte [ebp], cl
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x28]
je 0x533a10
cmp eax, 0x7f
jbe 0x533a10
lea ecx, [esp + 0x100]
push ecx
push eax
call fcn.005472f0
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, eax
jmp 0x53280b
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov byte [esp + 0x100], al
mov ecx, 1
jmp 0x53280b
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov ecx, eax
mov eax, dword [esp + 0x20]
mov edx, ecx
sub edx, eax
sar edx, 8
sub cl, al
mov byte [eax + 1], dl
mov byte [eax + 2], cl
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
add esi, 1
jmp 0x53262f
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x533a66
sub edx, esi
add dword [eax], edx
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x38]
setne dl
add dl, 0x6e
mov byte [ebp], dl
add ebp, 1
test eax, eax
jne 0x533ab8
test ecx, ecx
je 0x533aa8
jmp 0x533a90
mov cl, byte [esp + eax + 0x108]
not cl
mov byte [esp + eax + 0x108], cl
add eax, 1
cmp eax, 0x20
jb 0x533a90
mov ecx, 8
lea esi, [esp + 0x108]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add ebp, 0x20
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
test ecx, ecx
je case.0x532a49.1
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x64]
push eax
lea eax, [esi + 1]
call fcn.0052fdb0
cmp dword [edi], 0
mov esi, eax
mov dword [esp + 0x10], esi
jne 0x53679b
mov ebp, dword [esp + 0x14]
jmp 0x533b2e
mov dword [esp + 0x5c], 0xffffffff
jmp 0x533b26
mov dword [esp + 0x60], 1
mov dword [esp + 0x5c], 0xffffffff
jmp 0x533b2e
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
je 0x5364e9
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x533b73
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x64], edx
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x34], 0
neg eax
sbb eax, eax
and eax, 2
cmp dword [esp + 0x54], 0
mov dword [esp + 0x90], eax
mov dword [esp + 0x7c], ecx
je 0x533c55
add esi, 1
nop
movzx eax, byte [esi]
mov ecx, dword [edi + 0xc]
test byte [eax + ecx], 1
je 0x533bbd
mov eax, ecx
mov edi, edi
movzx edx, byte [esi + 1]
add esi, 1
test byte [edx + eax], 1
jne 0x533bb0
cmp byte [esi], 0x23
jne 0x533c4e
mov al, byte [esi + 1]
add esi, 1
test al, al
je 0x533ba0
mov ecx, dword [edi + 0x84]
test ecx, ecx
je 0x533bfd
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x533c24
push ebx
lea edx, [edi + 0x88]
push edx
push eax
push ecx
push esi
call fcn.00546f40
test eax, eax
je 0x533c24
add esi, dword [edi + 0x88]
jmp 0x533ba0
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x533c24
cmp al, byte [edi + 0x8c]
jne 0x533c24
cmp ecx, 1
je 0x533bf5
mov al, byte [esi + 1]
cmp al, byte [edi + 0x8d]
je 0x533bf5
add esi, 1
test ebx, ebx
je 0x533c43
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x533c43
mov dl, byte [esi + 1]
add esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x533c35
mov al, byte [esi]
test al, al
jne 0x533bd0
jmp 0x533ba0
add esi, 0xffffffff
mov dword [esp + 0x10], esi
mov al, byte [esi + 1]
cmp al, 0x2b
jne 0x533c6f
xor ebx, ebx
add esi, 1
mov dword [esp + 0x34], 1
mov dword [esp + 0x10], esi
jmp 0x533c8a
cmp al, 0x3f
jne 0x533c83
mov ebx, dword [esp + 0xcc]
add esi, 1
mov dword [esp + 0x10], esi
jmp 0x533c8a
mov ebx, dword [esp + 0xdc]
mov edi, dword [esp + 0x20]
cmp byte [edi], 0x75
mov dword [esp + 0x44], ebx
jne 0x533d38
lea esi, [edi + 3]
mov eax, esi
cmp eax, edi
jbe 0x533cbd
movzx ecx, byte [esi - 1]
add eax, 3
mov byte [eax - 1], cl
mov dl, byte [esi - 2]
mov byte [eax - 2], dl
movzx ecx, byte [esi - 3]
mov byte [eax - 3], cl
jmp 0x533ccf
movzx edx, byte [edi]
mov byte [eax], dl
mov cl, byte [edi + 1]
mov byte [eax + 1], cl
movzx edx, byte [edi + 2]
mov byte [eax + 2], dl
add ebp, 6
cmp dword [esp + 0x4c], 0
mov byte [edi], 0x81
mov byte [edi + 1], 0
mov byte [edi + 2], 6
mov byte [edi + 6], 0x78
mov byte [edi + 7], 0
mov byte [edi + 8], 6
mov dword [esp + 0x14], ebp
mov dword [esp + 0xa8], 9
jne 0x533d34
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
mov esi, dword [ecx + 0x20]
add eax, 2
cmp esi, eax
jb 0x533d34
movzx eax, byte [esi - 1]
mov ah, byte [esi - 2]
mov edx, edi
sub edx, dword [ecx + 0x14]
add edx, 1
cmp eax, edx
jne 0x533d34
lea edx, [eax + 3]
sar edx, 8
mov byte [esi - 2], dl
mov ecx, dword [ecx + 0x20]
add al, 3
mov byte [ecx - 1], al
mov esi, dword [esp + 0x10]
mov al, byte [edi]
cmp al, 0x1d
je 0x534425
cmp al, 0x1e
je 0x534425
cmp al, 0x1f
je 0x534425
cmp al, 0x20
je 0x534425
cmp al, 0x17
jae 0x533d6f
movzx edx, al
mov ecx, 0x34
mov dword [esp + 0x28], edx
jmp 0x5344d8
cmp al, 0x6e
je 0x534389
cmp al, 0x6f
je 0x534389
cmp al, 0x70
je 0x534389
cmp al, 0x71
je 0x534389
cmp al, 0x72
je 0x534389
cmp al, 0x73
je 0x534389
cmp al, 0x74
je 0x534389
cmp al, 0x7d
jb 0x534372
cmp al, 0x87
ja 0x534372
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
xor ecx, ecx
sub ebx, eax
cmp byte [eax], 0x87
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x54], ecx
jne 0x533de2
cmp byte [eax + 3], 0x91
je 0x53486e
cmp byte [eax], 0x81
jae 0x533e0a
cmp dword [esp + 0x60], 0
jg 0x53486e
mov eax, dword [esp + 0x5c]
test eax, eax
jl 0x533dff
cmp eax, 1
jle 0x533e0e
mov eax, 1
mov dword [esp + 0x5c], eax
jmp 0x533e0e
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x533ee6
cmp eax, 1
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
jg 0x533e84
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov byte [eax], cl
mov ecx, dword [esp + 0x70]
push ecx
push edx
push 1
push edi
call fcn.00531fe0
lea esi, [edi + 1]
mov ecx, ebx
mov eax, esi
call fcn.0052f370
add dword [esp + 0x14], 1
cmp dword [esp + 0x5c], 0
mov eax, edi
jne 0x533e61
mov byte [eax], 0xa1
jmp 0x53486a
mov cl, byte [esp + 0x44]
sub cl, 0x6e
sub dword [esp + 0x5c], 1
mov edx, dword [esp + 0x5c]
mov byte [eax], cl
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x54], eax
jmp 0x53404a
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
push eax
push ecx
push 4
push edi
mov byte [edx], 0
call fcn.00531fe0
lea eax, [edi + 4]
mov ecx, ebx
call fcn.0052f370
mov dl, byte [esp + 0x44]
mov eax, dword [esp + 0x20]
add dword [esp + 0x14], 4
sub dl, 0x6e
mov byte [eax], dl
add eax, 1
mov byte [eax], 0x83
add eax, 1
mov byte [eax], 0
mov byte [eax + 1], 0
mov esi, dword [esp + 0x10]
mov dword [esp + 0x38], eax
add eax, 2
sub dword [esp + 0x5c], 1
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
jmp 0x53404a
cmp ecx, 1
jle 0x53403a
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x533f3b
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xa8]
add eax, 0xffffffff
mov ecx, eax
imul ecx, edx
imul edx
test edx, edx
jg 0x5364f8
jl 0x533f21
cmp eax, 0x7fffffff
ja 0x5364f8
mov eax, dword [edi]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x5364f8
add eax, ecx
mov dword [edi], eax
jmp 0x53403a
cmp dword [esp + 0xb0], 0
je 0x533f5f
cmp dword [esp + 0x64], 0
jge 0x533f5f
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x64], ecx
mov eax, 1
cmp dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
jle 0x53403a
mov esi, dword [esp + 0x18]
jmp 0x533f80
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edi, dword [esi + 0x20]
sub edi, dword [esi + 0x10]
push ebx
push edx
push eax
call fcn.00549c50
mov edx, dword [esi + 0x10]
mov ecx, ebp
sub ecx, edi
add ecx, dword [esi + 0x3c]
add esp, 0xc
lea eax, [ecx + edx - 0x64]
cmp dword [esi + 0x20], eax
jbe 0x533fdc
lea esp, [esp]
mov esi, dword [esp + 0x18]
call fcn.0052f3c0
test eax, eax
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
jne 0x536797
mov edx, ebp
sub edx, edi
mov eax, esi
add edx, dword [eax + 0x3c]
mov ecx, dword [eax + 0x10]
lea edx, [edx + ecx - 0x64]
cmp dword [eax + 0x20], edx
ja 0x533fb0
mov ecx, dword [esi + 0x10]
lea eax, [ecx + ebp]
add ecx, edi
cmp eax, ecx
jae 0x53401b
mov ebp, 2
lea ecx, [ecx]
mov edx, dword [esi + 0x20]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
add ecx, ebx
sar ecx, 8
mov byte [edx], cl
movzx ecx, byte [eax + 1]
mov edx, dword [esi + 0x20]
add cl, bl
mov byte [edx + 1], cl
add dword [esi + 0x20], ebp
mov ecx, dword [esi + 0x10]
add eax, ebp
add ecx, edi
cmp eax, ecx
jb 0x533ff0
mov eax, dword [esp + 0x58]
add dword [esp + 0x14], ebx
add eax, 1
cmp eax, dword [esp + 0x60]
mov ebp, edi
mov dword [esp + 0x58], eax
jl 0x533f80
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
test edx, edx
jle 0x53404c
sub edx, dword [esp + 0x60]
mov dword [esp + 0x5c], edx
test edx, edx
jl 0x534237
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x5340a1
test edx, edx
jle 0x5340a1
mov eax, dword [esp + 0xa8]
add eax, 7
mov ecx, eax
imul ecx, edx
imul edx
sub ecx, 6
test edx, edx
jg 0x536507
jl 0x534087
cmp eax, 0x7fffffff
ja 0x536507
mov eax, dword [edi]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x536507
add eax, ecx
mov dword [edi], eax
jmp 0x5341e4
add edx, 0xffffffff
mov dword [esp + 0x58], edx
js 0x5341e4
mov al, byte [esp + 0x44]
mov esi, dword [esp + 0x14]
sub al, 0x6e
mov byte [esp + 0xa3], al
nop
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x20]
sub edi, dword [eax + 0x10]
mov al, byte [esp + 0xa3]
mov ecx, dword [esp + 0x38]
mov byte [esi], al
add esi, 1
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], esi
je 0x53410c
mov byte [esi], 0x83
add esi, 1
test ecx, ecx
jne 0x5340f3
xor eax, eax
jmp 0x5340f7
mov eax, esi
sub eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [esp + 0x38], esi
mov byte [esi], cl
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x20]
push ebx
push edx
push esi
call fcn.00549c50
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x10]
mov ecx, ebp
sub ecx, edi
add ecx, dword [eax + 0x3c]
add esp, 0xc
lea ecx, [ecx + edx - 0x64]
cmp dword [eax + 0x20], ecx
jbe 0x534162
mov esi, dword [esp + 0x18]
call fcn.0052f3c0
test eax, eax
mov edx, dword [esp + 0x1c]
mov dword [edx], eax
jne 0x536797
mov ecx, ebp
sub ecx, edi
mov eax, esi
add ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x10]
lea ecx, [ecx + edx - 0x64]
cmp dword [eax + 0x20], ecx
ja 0x534132
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x10]
lea eax, [ecx + ebp]
add ecx, edi
cmp eax, ecx
jae 0x5341cd
mov ecx, dword [esp + 0x58]
mov esi, ecx
neg esi
sbb esi, esi
and esi, 3
add esi, 1
neg ecx
sbb cl, cl
and cl, 3
add cl, 1
mov ebp, edx
mov edi, edi
xor edx, edx
mov dh, byte [eax]
add eax, 2
mov dl, byte [eax - 1]
add edx, ebx
mov ebx, dword [ebp + 0x20]
add edx, esi
sar edx, 8
mov byte [ebx], dl
movzx edx, byte [eax - 1]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [ebp + 0x20]
add dl, bl
add dl, cl
mov byte [ebp + 1], dl
mov ebp, dword [esp + 0x18]
add dword [ebp + 0x20], 2
mov edx, dword [ebp + 0x10]
add edx, edi
cmp eax, edx
jb 0x534190
mov esi, dword [esp + 0x14]
add esi, ebx
sub dword [esp + 0x58], 1
mov ebp, edi
mov dword [esp + 0x14], esi
jns 0x5340c0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
test edi, edi
je 0x534747
mov esi, dword [esp + 0x14]
mov eax, esi
sub eax, edi
add eax, 1
mov ecx, esi
sub ecx, eax
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx + 2]
test edx, edx
jne 0x53420f
xor edi, edi
jmp 0x534211
sub edi, edx
mov byte [esi], 0x78
add esi, 1
mov edx, eax
sar edx, 8
mov byte [esi], dl
mov byte [esi + 1], al
add esi, 2
test edi, edi
mov byte [ecx + 1], dl
mov byte [ecx + 2], al
jne 0x5341f4
mov dword [esp + 0x14], esi
jmp 0x534743
mov ebp, dword [esp + 0x14]
xor eax, eax
mov ah, byte [ebp - 2]
lea esi, [ebp - 3]
mov edi, esi
mov al, byte [esi + 2]
sub edi, eax
mov al, byte [edi]
cmp al, 0x81
je 0x534254
cmp al, 0x82
jne 0x534260
cmp dword [esp + 0x34], 0
je 0x534260
mov byte [edi], 0x83
jmp 0x534270
cmp al, 0x81
je 0x534365
cmp al, 0x82
je 0x534365
cmp dword [esp + 0x4c], 0
jne 0x5342ab
mov ebx, edi
lea esp, [esp]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
push 0
push ecx
push edx
push esi
push ebx
call fcn.00530520
test eax, eax
jne 0x5342a8
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x77
je 0x534280
jmp 0x5342ab
add byte [edi], 5
cmp byte [edi], 0x87
jne 0x5342c1
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
cmp byte [ecx + edi], 0x77
je 0x5342c1
mov byte [edi], 0x8c
cmp dword [esp + 0x34], 0
je 0x534358
mov al, byte [edi]
cmp al, 0x87
je 0x5342df
cmp al, 0x8c
je 0x5342df
add al, 1
mov byte [edi], al
mov byte [esi], 0x7b
jmp 0x53433d
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
push edx
push eax
push 3
mov ebx, ebp
push edi
sub ebx, edi
mov byte [ebp], 0
call fcn.00531fe0
lea eax, [edi + 3]
mov ecx, ebx
call fcn.0052f370
add ebx, 3
add ebp, 3
cmp byte [edi], 0x87
mov eax, ebx
setne cl
sub cl, 1
and cl, 0xfb
add cl, 0x89
mov byte [edi], cl
mov byte [ebp], 0x7b
add ebp, 1
sar eax, 8
mov byte [ebp], al
mov byte [ebp + 1], bl
add ebp, 2
mov dword [esp + 0x14], ebp
mov byte [edi + 1], al
mov byte [edi + 2], bl
mov eax, dword [esp + 0x54]
test eax, eax
je 0x534348
mov byte [eax], 0x94
cmp dword [esp + 0x60], 2
jl 0x53486a
jmp 0x534743
mov al, byte [esp + 0x44]
add al, 0x79
mov byte [esi], al
jmp 0x53486a
mov al, byte [esp + 0x44]
add al, 0x79
mov byte [esi], al
jmp 0x534743
cmp al, 0x9d
je 0x53486e
mov edx, dword [esp + 0x1c]
mov dword [edx], 0xb
jmp 0x53679b
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x53439a
mov dword [esp + 0x14], edi
jmp 0x53486e
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x5343b9
cmp eax, 0xffffffff
jne 0x5343d5
add bl, 0x62
mov byte [ebp], bl
add ebp, 1
mov dword [esp + 0x14], ebp
jmp 0x534743
cmp ecx, 1
jne 0x5343ec
cmp eax, 0xffffffff
jne 0x5343ec
add bl, 0x64
mov byte [ebp], bl
add ebp, 1
mov dword [esp + 0x14], ebp
jmp 0x534743
cmp eax, 1
jne 0x5343ec
add bl, 0x66
mov byte [ebp], bl
add ebp, 1
mov dword [esp + 0x14], ebp
jmp 0x534743
add bl, 0x68
mov byte [ebp], bl
add ebp, 1
mov edx, ecx
sar edx, 8
mov byte [ebp], dl
mov byte [ebp + 1], cl
add ebp, 2
cmp eax, 0xffffffff
jne 0x53440e
xor eax, eax
mov dword [esp + 0x5c], eax
mov ecx, eax
sar ecx, 8
mov byte [ebp], cl
mov byte [ebp + 1], al
add ebp, 2
mov dword [esp + 0x14], ebp
jmp 0x534743
movzx ecx, al
sub ecx, 0x1e
je 0x534449
sub ecx, 1
je 0x534442
sub ecx, 1
je 0x53443b
xor ecx, ecx
jmp 0x53444e
mov ecx, 0x27
jmp 0x53444e
mov ecx, 0x1a
jmp 0x53444e
mov ecx, 0xd
cmp dword [esp + 0x40], 0
mov dword [esp + 0x24], ecx
je 0x5344af
mov dl, byte [ebp - 1]
lea edi, [ebp - 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x5344ab
mov ecx, edi
mov al, byte [ecx]
and al, 0xc0
cmp al, dl
jne 0x53447f
mov dl, byte [ecx - 1]
sub ecx, 1
and dl, 0xc0
cmp dl, 0x80
je 0x534471
mov eax, ebp
sub eax, ecx
push eax
mov dword [esp + 0x2c], eax
push ecx
lea eax, [esp + 0x130]
push eax
call fcn.00549c50
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
add esp, 0xc
or dword [esp + 0x28], 0x10000000
jmp 0x5344d8
mov edi, dword [esp + 0x20]
cmp al, 0x1e
movzx edx, byte [ebp - 1]
mov dword [esp + 0x28], edx
ja 0x5344d8
cmp dword [esp + 0x60], 1
jle 0x5344d8
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x68]
or eax, dword [esp + 0xa4]
mov dword [esp + 0x64], eax
mov al, byte [edi]
cmp al, 0x10
je 0x5344eb
cmp al, 0xf
je 0x5344eb
or eax, 0xffffffff
mov dword [esp + 0x38], eax
jmp 0x5344f7
movzx edx, byte [edi + 2]
movzx eax, byte [edi + 1]
mov dword [esp + 0x38], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
test eax, eax
mov edi, ebp
je 0x53486e
add ebx, ecx
cmp dword [esp + 0x60], 0
jne 0x534570
cmp eax, 0xffffffff
jne 0x534534
mov eax, dword [esp + 0x20]
add bl, 0x21
mov byte [eax], bl
add eax, 1
mov dword [esp + 0x14], eax
jmp 0x5346e6
cmp eax, 1
jne 0x53454e
mov eax, dword [esp + 0x20]
add bl, 0x25
mov byte [eax], bl
add eax, 1
mov dword [esp + 0x14], eax
jmp 0x5346e6
mov ecx, dword [esp + 0x20]
add bl, 0x27
mov byte [ecx], bl
add ecx, 1
mov edx, eax
sar edx, 8
mov byte [ecx], dl
mov byte [ecx + 1], al
add ecx, 2
mov dword [esp + 0x14], ecx
jmp 0x5346e6
cmp dword [esp + 0x60], 1
jne 0x5345bf
cmp eax, 0xffffffff
jne 0x534591
mov eax, dword [esp + 0x20]
add bl, 0x23
mov byte [eax], bl
add eax, 1
mov dword [esp + 0x14], eax
jmp 0x5346e6
cmp eax, 1
mov dword [esp + 0x14], edi
je 0x53486e
lea edx, [eax - 1]
add bl, 0x27
lea ecx, [edi + 1]
sar edx, 8
sub al, 1
mov byte [edi], bl
mov byte [ecx], dl
mov byte [ecx + 1], al
add ecx, 2
mov dword [esp + 0x14], ecx
jmp 0x5346e6
mov esi, dword [esp + 0x20]
add cl, 0x29
mov byte [esi], cl
mov ecx, dword [esp + 0x60]
add esi, 1
mov edx, ecx
sar edx, 8
mov byte [esi], dl
mov byte [esi + 1], cl
add esi, 2
test eax, eax
mov dword [esp + 0x14], esi
jge 0x534649
cmp dword [esp + 0x40], 0
je 0x53461d
test dword [esp + 0x28], 0x10000000
je 0x53461d
mov edi, dword [esp + 0x28]
and edi, 7
push edi
lea eax, [esp + 0x12c]
push eax
push esi
call fcn.00549c50
add esi, edi
add bl, 0x21
add esp, 0xc
mov byte [esi], bl
add esi, 1
jmp 0x5346e2
mov cl, byte [esp + 0x28]
mov eax, dword [esp + 0x24]
mov byte [esi], cl
add esi, 1
test eax, eax
jl 0x53463c
mov dl, byte [esp + 0x38]
mov byte [esi], al
add esi, 1
mov byte [esi], dl
add esi, 1
add bl, 0x21
mov byte [esi], bl
add esi, 1
jmp 0x5346e2
cmp eax, ecx
je 0x5346e6
cmp dword [esp + 0x40], 0
je 0x534687
test dword [esp + 0x28], 0x10000000
je 0x534687
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
and edi, 7
push edi
lea eax, [esp + 0x12c]
push eax
push esi
call fcn.00549c50
mov ecx, dword [esp + 0x6c]
add esp, 0xc
add esi, edi
jmp 0x53469a
mov edx, dword [esp + 0x14]
mov al, byte [esp + 0x28]
add dword [esp + 0x14], 1
mov esi, dword [esp + 0x14]
mov byte [edx], al
cmp dword [esp + 0x24], 0
mov eax, dword [esp + 0x5c]
jl 0x5346b9
movzx edx, byte [esp + 0x24]
mov byte [esi], dl
movzx edx, byte [esp + 0x38]
add esi, 1
mov byte [esi], dl
add esi, 1
sub eax, ecx
cmp eax, 1
mov dword [esp + 0x5c], eax
jne 0x5346cd
add bl, 0x25
mov byte [esi], bl
add esi, eax
jmp 0x5346e2
add bl, 0x27
mov byte [esi], bl
add esi, 1
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x14], esi
cmp dword [esp + 0x40], 0
je 0x534718
test dword [esp + 0x28], 0x10000000
je 0x534718
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
and esi, 7
push esi
lea edx, [esp + 0x12c]
push edx
push edi
call fcn.00549c50
add esp, 0xc
add edi, esi
jmp 0x534725
mov edi, dword [esp + 0x14]
mov al, byte [esp + 0x28]
mov byte [edi], al
add edi, 1
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x14], edi
jl 0x534743
mov cl, byte [esp + 0x38]
mov byte [edi], al
add edi, 1
mov byte [edi], cl
add edi, 1
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x34], 0
je 0x53486e
mov eax, dword [esp + 0x7c]
movzx ecx, byte [eax]
lea edx, [ecx - 0x1d]
cmp edx, 0x53
ja case.0x53476c.33
movzx edx, byte [edx + 0x5368e0]
jmp dword [edx*4 + 0x5368cc]
mov dl, byte [eax + 3]
cmp dl, 0x10
je 0x53478f
cmp dl, 0xf
je 0x53478f
movzx ecx, byte [ecx + 0x574580]
xor edx, edx
add ecx, edx
add eax, ecx
jmp 0x5347db
movzx ecx, byte [ecx + 0x574580]
mov edx, 2
add ecx, edx
add eax, ecx
jmp 0x5347db
movzx edx, byte [ecx + 0x574580]
add eax, edx
cmp dword [esp + 0x40], 0
mov dword [esp + 0x7c], eax
je case.0x53476c.33
movzx ecx, byte [eax - 1]
cmp cl, 0xc0
jb case.0x53476c.33
and ecx, 0x3f
movzx ecx, byte [ecx + 0x574718]
add eax, ecx
jmp 0x5347db
add eax, 0x21
jmp 0x5347db
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
add eax, edx
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x14]
sub ebx, eax
test ebx, ebx
jle 0x53486e
movzx ecx, byte [eax]
cmp ecx, 0x76
jae 0x534803
mov cl, byte [ecx + 0x574408]
test cl, cl
jbe 0x534803
mov byte [eax], cl
jmp 0x53486a
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
push eax
push ecx
mov byte [ebp], 0
mov edx, dword [esp + 0x84]
push 3
push edx
call fcn.00531fe0
mov edi, dword [esp + 0x7c]
lea eax, [edi + 3]
mov ecx, ebx
call fcn.0052f370
mov eax, dword [esp + 0x7c]
mov byte [eax], 0x81
mov byte [ebp + 3], 0x78
add ebx, 3
add ebp, 3
add ebp, 1
mov eax, ebx
sar eax, 8
mov byte [ebp], al
mov byte [ebp + 1], bl
mov ecx, dword [esp + 0x7c]
mov byte [ecx + 1], al
mov edx, dword [esp + 0x7c]
add ebp, 2
mov dword [esp + 0x14], ebp
mov byte [edx + 2], bl
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x90]
or dword [eax + 0x68], ecx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x20], 0
mov edi, eax
add esi, 1
jmp 0x53262f
add esi, 1
mov dword [esp + 0x10], esi
mov cl, byte [esi]
cmp cl, 0x3f
jne 0x5348e0
cmp byte [esi + 1], 0x23
jne 0x5348e0
add esi, 2
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x5348c4
cmp al, 0x29
je 0x5348d3
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x5348b3
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x12
jmp 0x53679b
cmp byte [esi], 0
je 0x5348c4
add esi, 1
jmp 0x53262f
cmp cl, 0x2a
jne 0x534b3e
mov al, byte [esi + 1]
cmp al, 0x3a
lea edx, [esi + 1]
mov dword [esp + 0x58], edx
je 0x534907
mov ebx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ebx], 2
je 0x534b3e
mov ebx, dword [edi + 0xc]
xor eax, eax
mov esi, edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], eax
movzx eax, byte [esi]
test byte [eax + ebx], 2
mov ecx, 0x5730f0
mov dword [esp + 0x54], ecx
je 0x534942
mov edi, ebx
add esi, 1
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
test byte [eax + edi], 2
jne 0x534932
mov edi, esi
sub edi, edx
cmp byte [esi], 0x3a
mov dword [esp + 0x90], edi
jne 0x534989
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
mov ebx, esi
mov dword [esp + 0x38], ebx
je 0x534976
cmp al, 0x29
je 0x534976
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x534965
mov eax, esi
sub eax, ebx
cmp eax, 0xff
mov dword [esp + 0x2c], eax
ja 0x536516
cmp byte [esi], 0x29
jne 0x536525
mov dword [esp + 0x24], 0
mov ebx, 0x573120
nop
cmp edi, dword [ebx]
jne 0x534a5e
test edi, edi
mov eax, edx
je 0x5349c9
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x534a50
test dl, dl
je 0x5349c9
add eax, 1
add ecx, 1
sub edi, 1
jne 0x5349b0
mov edi, dword [esp + 0x24]
lea eax, [edi + edi*2]
add eax, eax
mov ecx, dword [eax + eax + 0x573124]
add eax, eax
cmp ecx, 0x9e
jne 0x534a90
cmp dword [esp + 0x2c], 0
jne 0x536534
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x24]
test eax, eax
mov dword [ecx + 0x6c], 1
je 0x534a22
mov byte [ebp], 0xa0
movzx edx, byte [eax + 5]
add ebp, 1
mov byte [ebp], dl
movzx edx, byte [eax + 4]
mov byte [ebp + 1], dl
mov eax, dword [eax]
add ebp, 2
test eax, eax
jne 0x534a04
cmp dword [ecx + 0x5c], 0
setg al
add al, 0x9e
mov byte [ebp], al
add ebp, 1
cmp dword [esp + 0x3c], 0xfffffffe
movzx esi, al
mov dword [esp + 0x14], ebp
jne 0x534b03
mov dword [esp + 0x3c], 0xffffffff
jmp 0x534b03
movzx ecx, byte [ecx]
movzx edx, byte [eax]
sub edx, ecx
je 0x5349c9
mov eax, dword [ebx]
mov ecx, dword [esp + 0x54]
add dword [esp + 0x24], 1
add ebx, 0xc
cmp ebx, 0x57318c
lea ecx, [ecx + eax + 1]
mov dword [esp + 0x54], ecx
jge 0x536561
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x58]
jmp 0x5349a0
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jne 0x534aaa
test ecx, ecx
jl 0x536543
mov al, cl
mov byte [ebp], al
movzx esi, cl
jmp 0x534af8
cmp dword [eax + 0x573128], 0
jl 0x536552
mov al, byte [eax + 0x573128]
mov byte [ebp], al
movzx esi, al
mov eax, dword [esp + 0x4c]
add ebp, 1
test eax, eax
je 0x534ad9
add dword [eax], ebx
mov byte [ebp], 0
add ebp, 1
jmp 0x534af4
mov eax, dword [esp + 0x38]
push ebx
mov byte [ebp], bl
push eax
add ebp, 1
push ebp
call fcn.00549c50
mov edi, dword [esp + 0x30]
add esp, 0xc
add ebp, ebx
mov byte [ebp], 0
mov ecx, dword [esp + 0x18]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 0xffffff6a
cmp esi, 5
ja case.default.0x534b0e
jmp dword [esi*4 + 0x536934]
or dword [ecx + 0x64], 0x1000
jmp case.default.0x534b0e
mov dword [ecx + 0x70], 1
cmp edi, 9
mov esi, dword [esp + 0x10]
jge 0x536561
mov edi, dword [esp + 0x18]
add esi, 1
jmp 0x53262f
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov edx, dword [esp + 0x50]
xor ebx, ebx
cmp cl, 0x3f
mov dword [esp + 0x54], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x34], 0x85
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], ebx
jne 0x535409
mov edx, 1
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x5b
ja case.0x534b8e.34
movzx ecx, byte [ecx + 0x536984]
jmp dword [ecx*4 + 0x53694c]
mov dword [esp + 0x38], edx
mov dword [edi + 0x7c], edx
add esi, edx
jmp 0x53576d
cmp byte [esi + 1], 0x3f
mov ebx, esi
mov dword [esp + 0x34], 0x87
mov dword [esp + 0x94], ebx
jne 0x534bf2
cmp byte [esi + 2], 0x43
jne 0x534bf2
mov al, byte [esi + 3]
cmp al, 0x30
mov ecx, 3
mov dword [esp + 0x48], ecx
jb 0x534be1
cmp al, 0x39
ja 0x534bdd
add ecx, edx
mov al, byte [ecx + esi]
cmp al, 0x30
jae 0x534bd0
mov dword [esp + 0x48], ecx
cmp byte [ecx + esi], 0x29
jne 0x534bf2
lea ebx, [ecx + esi + 1]
mov dword [esp + 0x94], ebx
cmp byte [ebx + 1], 0x3f
jne 0x534c1d
mov al, byte [ebx + 2]
cmp al, 0x3d
je 0x534c12
cmp al, 0x21
je 0x534c12
cmp al, 0x3c
jne 0x534c1d
mov al, byte [ebx + 3]
cmp al, 0x3d
je 0x534c12
cmp al, 0x21
jne 0x534c1d
mov dword [edi + 0x80], edx
jmp 0x535779
mov byte [ebp + 3], 0x8d
mov esi, dword [esp + 0x10]
add esi, edx
or ebx, 0xffffffff
mov dword [esp + 0x10], esi
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x52
mov dword [esp + 0x44], 3
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ecx
jne 0x534c65
cmp byte [esi + 1], 0x26
jne 0x534c65
add esi, 2
mov dword [esp + 0x10], esi
mov byte [ebp + 3], 0x8f
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
jmp 0x534c7b
cmp al, 0x3c
jne 0x534d41
mov dword [esp + 0x24], 0x3e
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x534c89
cmp al, 0x39
jbe 0x536595
mov edx, dword [edi + 0xc]
movzx eax, al
test byte [eax + edx], 0x10
je 0x5365a4
mov ebx, esi
add esi, 1
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
test byte [eax + edx], 0x10
mov dword [esp + 0x28], ebx
je 0x534cc1
mov eax, edx
add esi, 1
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x534cb1
mov eax, esi
sub eax, ebx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x20], eax
je 0x534cd8
mov dword [esp + 0x44], 5
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x534cf1
mov dl, byte [esi]
add esi, 1
cmp dl, al
mov dword [esp + 0x10], esi
jne 0x5365b3
mov al, byte [esi]
add esi, 1
cmp al, 0x29
mov dword [esp + 0x10], esi
jne 0x5365b3
cmp dword [esp + 0x4c], 0
jne 0x535779
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x534df8
test ecx, ecx
jle 0x5365c5
test eax, eax
je 0x534dc7
cmp eax, 0x2d
jne 0x534dc4
mov edx, dword [edi + 0x40]
sub edx, ecx
add edx, 1
mov ecx, edx
jmp 0x534dc7
cmp al, 0x27
jne 0x534d52
mov dword [esp + 0x24], 0x27
jmp 0x534c75
xor ebx, ebx
cmp al, 0x2d
mov dword [esp + 0x24], ebx
je 0x534d76
cmp al, 0x2b
je 0x534d76
cmp al, 0x30
jb 0x534c89
cmp al, 0x39
ja 0x534c7b
mov dword [esp + 0x2c], ebx
jmp 0x534d8b
movzx eax, al
add esi, edx
cmp eax, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], esi
jl 0x534c7b
mov al, byte [esi]
cmp al, 0x30
jb 0x534cf1
cmp al, 0x39
ja 0x534cf1
cmp ecx, 0xccccccb
jg 0x536570
movzx eax, al
add esi, edx
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x534d95
jmp 0x534cf1
add ecx, dword [edi + 0x40]
test ecx, ecx
jle 0x5365d4
cmp ecx, dword [edi + 0x44]
jg 0x5365d4
mov eax, ecx
sar eax, 8
mov byte [ebp + 4], al
mov byte [ebp + 5], cl
cmp ecx, dword [edi + 0x4c]
mov esi, dword [esp + 0x10]
jle 0x535779
mov dword [edi + 0x4c], ecx
jmp 0x535779
mov ebx, dword [edi + 0x2c]
mov edi, dword [edi + 0x30]
test edi, edi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], edi
jle 0x534e63
mov edi, dword [esp + 0x20]
test edi, edi
mov eax, dword [esp + 0x28]
lea ecx, [ebx + 2]
je 0x534e63
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x534e3b
test dl, dl
je 0x534e63
add eax, 1
add ecx, 1
sub edi, 1
jne 0x534e24
jmp 0x534e63
movzx ecx, byte [ecx]
movzx edx, byte [eax]
sub edx, ecx
je 0x534e63
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
add ebx, dword [ecx + 0x34]
add eax, 1
cmp eax, dword [ecx + 0x30]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x48], eax
jl 0x534e15
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
cmp ecx, edi
jge 0x534f50
movzx eax, byte [ebx + 1]
mov ah, byte [ebx]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
add ecx, 1
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], 1
cmp eax, dword [edx + 0x4c]
mov dword [esp + 0x58], eax
jle 0x534e9c
mov dword [edx + 0x4c], eax
cmp ecx, edi
jge 0x534f47
mov eax, dword [edx + 0x34]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x90], eax
add ebx, dword [esp + 0x90]
test edi, edi
mov eax, dword [esp + 0x28]
mov esi, edi
lea ecx, [ebx + 2]
je 0x534ee7
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x534edd
test dl, dl
je 0x534ee7
add eax, 1
add ecx, 1
sub esi, 1
jne 0x534ec6
jmp 0x534ee7
movzx ecx, byte [ecx]
movzx eax, byte [eax]
sub eax, ecx
jne 0x534f07
cmp byte [ebx + edi + 2], 0
jne 0x534f07
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
add dword [esp + 0x2c], 1
add eax, 1
cmp eax, dword [edx + 0x30]
mov dword [esp + 0x48], eax
jl 0x534eb2
mov eax, dword [esp + 0x2c]
cmp eax, 1
mov dword [esp + 0x80], ebx
jle 0x534f47
mov ecx, dword [esp + 0x24]
add dword [esp + 0x44], 2
mov edi, dword [esp + 0x18]
mov edx, ecx
mov byte [ebp + 5], cl
mov ecx, eax
sar edx, 8
sar ecx, 8
add byte [ebp + 3], 1
mov byte [ebp + 6], cl
mov byte [ebp + 7], al
mov byte [ebp + 4], dl
mov esi, dword [esp + 0x10]
jmp 0x535779
mov eax, dword [esp + 0x58]
jmp 0x534fc2
cmp dword [esp + 0x24], 0
jne 0x535638
mov ebx, dword [esp + 0x28]
cmp byte [ebx], 0x52
jne 0x534fda
mov edi, dword [esp + 0x20]
mov edx, 1
xor eax, eax
cmp edi, edx
mov dword [esp + 0x48], edx
jle 0x534fb9
jmp 0x534f80
mov cl, byte [ebx + edx]
cmp cl, 0x30
jb 0x5365d4
cmp cl, 0x39
ja 0x5365d4
cmp eax, 0xccccccb
jg 0x5365e3
movzx ecx, cl
add edx, 1
cmp edx, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [esp + 0x48], edx
jl 0x534f80
test eax, eax
jne 0x534fbe
mov eax, 0xffff
mov byte [ebp + 3], 0x8f
mov edi, dword [esp + 0x18]
mov edx, eax
sar edx, 8
mov byte [ebp + 5], al
mov byte [ebp + 4], dl
mov esi, dword [esp + 0x10]
jmp 0x535779
mov edi, 6
cmp dword [esp + 0x20], edi
jne 0x535638
mov eax, ebx
mov ecx, str.DEFINE
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x535007
test dl, dl
je 0x535015
add eax, 1
add ecx, 1
sub edi, 1
jne 0x534ff0
jmp 0x535015
movzx eax, byte [eax]
movzx ecx, byte [ecx]
sub eax, ecx
jne 0x535638
mov edi, dword [esp + 0x18]
mov byte [ebp + 3], 0x91
mov esi, dword [esp + 0x10]
mov dword [esp + 0x44], 1
jmp 0x535779
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x7d
add esi, edx
jmp 0x535775
add esi, edx
mov dword [esp + 0x10], esi
cmp byte [esi], 0x29
jne 0x535084
mov al, byte [esi + 1]
cmp al, 0x2a
je 0x535084
cmp al, 0x2b
je 0x535084
cmp al, 0x3f
je 0x535084
cmp al, 0x7b
jne 0x53506a
lea eax, [esi + 2]
call fcn.0052f440
test eax, eax
jne 0x535084
mov byte [ebp], 0x9d
mov esi, dword [esp + 0x10]
add ebp, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ebx
add esi, 1
jmp 0x53262f
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x7e
jmp 0x535779
mov cl, byte [esi + 1]
cmp cl, 0x21
je 0x5351b5
cmp cl, 0x3d
je 0x5351a2
mov ebx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + ebx], 0x10
je 0x5365f2
sub al, 0x3c
neg al
sbb eax, eax
add esi, edx
and eax, 0xffffffe9
mov dword [esp + 0x10], esi
mov cl, byte [esi]
add eax, 0x3e
cmp cl, 0x30
mov dword [esp + 0x28], esi
jb 0x5350df
cmp cl, 0x39
jbe 0x536621
mov ebx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + ebx], 0x10
je 0x5350ff
mov edi, ebx
lea ecx, [ecx]
add esi, edx
mov dword [esp + 0x10], esi
movzx ecx, byte [esi]
test byte [ecx + edi], 0x10
jne 0x5350f0
mov ebp, esi
sub ebp, dword [esp + 0x28]
cmp dword [esp + 0x4c], 0
je 0x535398
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x40]
add edx, 1
cmp byte [esi], al
mov dword [esp + 0x2c], edx
jne 0x536630
mov edx, dword [ecx + 0x30]
cmp edx, 0x2710
jge 0x53663f
lea eax, [ebp + 3]
cmp eax, dword [ecx + 0x34]
jle 0x535149
cmp ebp, 0x20
mov dword [ecx + 0x34], eax
jg 0x53664e
test edx, edx
mov ebx, dword [ecx + 0x28]
mov dword [esp + 0x48], 0
jle 0x535301
lea esp, [esp]
cmp ebp, dword [ebx + 4]
jne 0x5352d9
test ebp, ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx]
mov edi, ebp
je 0x5352b5
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5352ab
test dl, dl
je 0x5352b5
add eax, 1
add ecx, 1
sub edi, 1
jne 0x535180
jmp 0x5352b5
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x7f
add esi, 2
jmp 0x535775
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x80
add esi, 2
jmp 0x535775
mov dword [esp + 0x34], 0x81
add esi, edx
jmp 0x535775
mov byte [ebp], 0x76
mov esi, dword [esp + 0x10]
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov dword [esp + 0x98], ebp
add ebp, edx
xor ecx, ecx
cmp al, 0x30
mov dword [esp + 0xc0], edx
jb 0x53521a
lea ecx, [ecx]
cmp al, 0x39
ja 0x53521a
movzx eax, al
add esi, edx
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x535200
cmp byte [esi], 0x29
jne 0x536603
cmp ecx, 0xff
jg 0x536612
mov byte [ebp], cl
mov ecx, dword [esp + 0x10]
sub ecx, dword [edi + 0x18]
add ebp, edx
add ecx, edx
sar ecx, 8
mov byte [ebp], cl
mov dl, byte [esp + 0x10]
sub dl, byte [edi + 0x18]
mov byte [ebp + 2], 0
add dl, 1
mov byte [ebp + 1], dl
mov byte [ebp + 3], 0
mov esi, dword [esp + 0x10]
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ebx
add esi, 1
jmp 0x53262f
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x3d
je 0x535296
cmp al, 0x3e
je 0x535296
cmp al, 0x3c
je case.0x534b8e.39
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x29
jmp 0x53679b
xor ecx, ecx
cmp al, 0x3e
sete cl
mov dword [esp + 0x38], ecx
mov ecx, 0x29
jmp 0x535b1d
movzx edx, byte [ecx]
movzx eax, byte [eax]
sub eax, edx
jne 0x5352d9
mov eax, dword [esp + 0x2c]
cmp dword [ebx + 8], eax
je 0x535301
test dword [esp + 0x50], 0x80000
je 0x53665d
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x78], 1
jmp 0x5352e6
mov edx, dword [esp + 0x2c]
cmp dword [ebx + 8], edx
je 0x53666c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
add eax, 1
add ebx, 0xc
cmp eax, dword [ecx + 0x30]
mov dword [esp + 0x48], eax
jl 0x535160
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x30]
cmp dword [esp + 0x48], ecx
jl 0x535398
mov eax, dword [edi + 0x38]
cmp ecx, eax
jl 0x535362
lea ebx, [eax + eax]
lea edx, [ebx + ebx*2]
add edx, edx
add edx, edx
push edx
call dword [0x597eec]
mov esi, eax
test esi, esi
je 0x53667b
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x28]
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
push eax
push ecx
push esi
call fcn.00549c50
add esp, 0xc
cmp dword [edi + 0x38], 0x14
jle 0x53535c
mov edx, dword [edi + 0x28]
push edx
call dword [0x597ef0]
mov dword [edi + 0x28], esi
mov dword [edi + 0x38], ebx
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x28]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*2]
mov dword [ecx + eax*4], edx
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x28]
lea eax, [eax + eax*2]
mov dword [ecx + eax*4 + 4], ebp
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x28]
mov dword [eax + edx*4 + 8], ecx
add dword [edi + 0x30], 1
mov esi, dword [esp + 0x10]
add esi, 1
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x18]
add dword [eax + 0x40], 1
mov edx, dword [eax + 0x40]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
shr edx, 8
mov byte [ecx + 3], dl
mov al, byte [eax + 0x40]
mov byte [ecx + 4], al
mov esi, dword [esp + 0x10]
mov dword [esp + 0x44], 2
mov ebp, ecx
jmp 0x535779
mov ecx, 0x29
mov dword [esp + 0x38], edx
jmp 0x535b1d
add esi, edx
xor ebx, ebx
mov dword [esp + 0x10], esi
cmp byte [esi], 0x29
je 0x535ce7
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x1d
jmp 0x53679b
mov ecx, 0x29
jmp 0x5355b7
test edx, 0x1000
je 0x53539f
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x34], 0x83
jmp 0x535779
mov ecx, dword [esp + 0x50]
mov edx, dword [edi + 0x40]
mov edi, dword [esp + 0x1c]
push ecx
push edx
push edi
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x20]
push ecx
xor ecx, ecx
mov dword [esp + 0xa8], esi
call fcn.0052f4c0
cmp dword [edi], 0
mov esi, eax
jne 0x536797
xor edx, edx
cmp esi, edx
jne 0x5354a8
cmp dword [esp + 0x40], edx
mov eax, dword [esp + 0xc4]
je 0x53548f
cmp eax, 0x7f
jbe 0x53548f
lea edx, [esp + 0x100]
push edx
push eax
call fcn.005472f0
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov ecx, eax
jmp 0x53280b
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov byte [esp + 0x100], al
mov ecx, 1
jmp 0x53280b
cmp esi, 0x1a
jne 0x5354e8
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x5354d0
cmp byte [esi + 2], 0x45
jne 0x5354d0
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
add esi, 2
add esi, 1
jmp 0x53262f
mov edi, dword [esp + 0x18]
mov dword [esp + 0x74], 1
mov ebp, dword [esp + 0x14]
add esi, 1
jmp 0x53262f
cmp esi, 0x19
je 0x533a46
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x535509
lea ecx, [esi - 6]
cmp ecx, 0x10
ja 0x535509
or eax, 0xffffffff
mov dword [esp + 0x3c], eax
cmp esi, 0x1b
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
jne 0x535aca
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
add esi, 1
mov dword [esp + 0x10], esi
mov cl, byte [esi]
sub cl, 0x3c
neg cl
mov dword [esp + 0x70], eax
movzx eax, byte [esi + 1]
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], edx
sbb ecx, ecx
and ecx, 0xffffffe9
add ecx, 0x3e
cmp eax, 0x2b
je 0x53558c
cmp eax, 0x2d
je 0x53558c
cmp eax, 0x30
jb 0x53557f
cmp eax, 0x39
jbe 0x53558c
mov dword [esp + 0x38], 1
jmp 0x535b14
mov al, byte [esi + 2]
cmp al, 0x30
lea edx, [esi + 2]
jb 0x5355a4
cmp al, 0x39
ja 0x5355a4
mov al, byte [edx + 1]
add edx, 1
cmp al, 0x30
jae 0x535596
cmp byte [edx], cl
jne 0x53668a
mov ebp, dword [esp + 0x14]
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx edx, al
cmp edx, 0x2b
jne 0x535647
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x536699
cmp al, 0x39
ja 0x536699
mov al, byte [esi]
xor ebx, ebx
cmp al, 0x30
jb 0x53560d
cmp al, 0x39
ja 0x53560d
cmp ebx, 0xccccccb
jg 0x5366f6
movzx eax, al
add esi, 1
lea ebx, [ebx + ebx*4]
lea ebx, [eax + ebx*2 - 0x30]
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x5355e6
cmp byte [esi], cl
jne 0x536720
cmp edx, 0x2d
jne 0x535ab1
test ebx, ebx
je 0x53672f
mov ecx, dword [edi + 0x40]
sub ecx, ebx
add ecx, 1
mov ebx, ecx
test ebx, ebx
jg 0x535ce7
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0xf
jmp 0x53679b
cmp edx, 0x2d
jne 0x5355de
mov bl, byte [esi + 1]
cmp bl, 0x30
jb case.0x534b8e.34
cmp bl, 0x39
ja case.0x534b8e.34
add esi, 1
mov dword [esp + 0x10], esi
jmp 0x5355de
mov ebx, dword [esp + 0x18]
xor edi, edi
xor edx, edx
cmp al, 0x29
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], edx
lea ecx, [esp + 0x54]
je 0x5356ef
cmp al, 0x3a
je 0x5356e7
movzx eax, al
add esi, 1
sub eax, 0x2d
cmp eax, 0x4b
mov dword [esp + 0x10], esi
ja case.0x5356a6.46
movzx edx, byte [eax + 0x536a04]
jmp dword [edx*4 + 0x5369e0]
lea ecx, [esp + 0x2c]
jmp 0x5356e1
or dword [ecx], 0x80000
or dword [ebx + 0x64], 0x400
jmp 0x5356e1
or dword [ecx], 1
jmp 0x5356e1
or dword [ecx], 2
jmp 0x5356e1
or dword [ecx], 4
jmp 0x5356e1
or dword [ecx], 8
jmp 0x5356e1
or dword [ecx], 0x200
jmp 0x5356e1
or dword [ecx], 0x40
mov al, byte [esi]
cmp al, 0x29
jne 0x535681
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
or edx, dword [esp + 0x50]
not edi
and edx, edi
cmp byte [esi], 0x29
mov dword [esp + 0x54], edx
jne 0x535766
mov eax, dword [ebx + 0x14]
add eax, 3
cmp ebp, eax
jne 0x535720
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x53571b
cmp dword [eax], 6
jne 0x535720
mov dword [ebx + 0x60], edx
jmp 0x535745
mov eax, edx
shr eax, 9
and eax, 1
mov dword [esp + 0xdc], eax
xor eax, 1
mov dword [esp + 0xcc], eax
mov eax, edx
and eax, 1
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xe0]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x50], edx
mov dword [ecx], edx
mov dword [esp + 0x20], 0
add esi, 1
jmp 0x53262f
mov edi, dword [esp + 0x18]
add esi, 1
mov dword [esp + 0x34], 0x83
mov dword [esp + 0x10], esi
add dword [edi + 0x58], 1
cmp dword [edi + 0x58], 0xfa
jg 0x5366ba
mov ecx, dword [esp + 0x34]
lea edx, [ecx - 0x7d]
cmp edx, 3
ja 0x5357ac
xor edx, edx
cmp dword [edi + 0x80], edx
je 0x5357ae
mov dword [esp + 0x20], edx
mov dword [edi + 0x80], edx
jmp 0x5357bc
xor edx, edx
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x70], eax
cmp ecx, 0x7f
mov byte [ebp], cl
mov eax, dword [edi + 0x68]
mov esi, dword [edi + 0x40]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x90], eax
mov dword [esp + 0xa8], edx
je 0x5357e8
cmp ecx, 0x80
je 0x5357e8
xor eax, eax
jmp 0x5357ed
mov eax, 1
mov edx, dword [esp + 0x4c]
neg edx
sbb edx, edx
lea ebx, [esp + 0xa8]
and edx, ebx
push edx
mov edx, dword [esp + 0xd4]
push edi
push edx
lea edx, [esp + 0xb8]
push edx
lea edx, [esp + 0xcc]
push edx
lea edx, [esp + 0xcc]
push edx
lea edx, [esp + 0xf0]
push edx
xor edx, edx
cmp ecx, 0x87
mov ecx, dword [esp + 0x60]
sete dl
add edx, dword [esp + 0x190]
push edx
mov edx, dword [esp + 0x58]
push ecx
push edx
push eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0xb0]
push edx
push eax
call fcn.00536a50
test eax, eax
je 0x536797
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
or eax, 0xffffffff
add dword [edi + 0x58], eax
cmp ebx, 0x81
jne 0x535913
cmp dword [edi + 0x40], esi
mov ebp, dword [esp + 0x14]
ja 0x535894
mov byte [ebp], 0x82
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0x10]
cmp byte [esi], 0x29
jne 0x5366e7
cmp dword [esp + 0x4c], 0
je 0x53599e
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa8]
mov edx, 0x7fffffeb
sub edx, eax
lea ebx, [ecx - 6]
cmp edx, ebx
jl 0x5364f8
lea eax, [eax + ecx - 6]
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
add ebp, 1
mov byte [ebp], 0
mov al, 3
mov byte [ebp + 1], al
add ebp, 2
mov byte [ebp], 0x78
add ebp, 1
mov byte [ebp], 0
mov byte [ebp + 1], al
mov esi, dword [esp + 0x10]
add ebp, 2
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
cmp ebx, 0x7d
jl 0x535923
cmp ebx, 0x80
jg 0x535923
add dword [edi + 0x5c], eax
cmp ebx, 0x87
mov ebp, dword [esp + 0x14]
jne 0x535894
cmp dword [esp + 0x4c], 0
jne 0x535894
mov eax, ebp
xor ecx, ecx
xor edx, edx
mov dh, byte [eax + 1]
add ecx, 1
mov dl, byte [eax + 2]
add eax, edx
cmp byte [eax], 0x78
jne 0x535942
cmp byte [ebp + 3], 0x91
jne 0x535974
cmp ecx, 1
jg 0x5366c9
mov dword [esp + 0x34], 0x91
mov ebx, dword [esp + 0x34]
jmp 0x535894
cmp ecx, 2
jg 0x5366d8
cmp ecx, 1
jne 0x535894
or edx, 0xffffffff
or ecx, edx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb8], ecx
jmp 0x5358a2
cmp ebx, 0x91
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
je 0x5354dc
cmp ebx, 0x81
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x84], eax
mov dword [esp + 0xb0], 0
jl 0x535a83
cmp eax, 0xfffffffe
jne 0x535a3a
test ecx, ecx
jl 0x535a25
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x88], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xb0], 1
mov dword [esp + 0x84], 0xffffffff
jmp 0x535a60
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x84], 0xffffffff
jmp 0x535a60
test ecx, ecx
jl 0x535a60
test edx, edx
jge 0x535a68
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x90]
or edx, ecx
mov dword [esp + 0xac], edx
test edx, edx
jl 0x5354dc
mov eax, dword [esp + 0xbc]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x78], eax
mov dword [esp + 0x64], edx
add esi, 1
jmp 0x53262f
cmp dword [esp + 0x34], 0x7d
jne 0x5354dc
test edx, edx
jl 0x5354dc
mov ecx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x64], edx
add esi, 1
jmp 0x53262f
cmp edx, 0x2b
jne 0x535ce7
test ebx, ebx
je 0x53673b
add ebx, dword [edi + 0x40]
jmp 0x535ce7
cmp esi, 0x1c
jne 0x535f84
mov esi, dword [esp + 0x10]
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x535aea
cmp al, 0x27
je 0x535aea
cmp al, 0x7b
jne 0x536747
mov edi, dword [esp + 0x18]
add esi, 1
mov dword [esp + 0x10], esi
mov cl, byte [esi]
cmp cl, 0x3c
mov dword [esp + 0x38], edx
jne 0x535b07
mov ecx, 0x3e
jmp 0x535b14
sub cl, 0x27
neg cl
sbb ecx, ecx
and ecx, 0x56
add ecx, 0x27
mov ebp, dword [esp + 0x14]
mov edx, 1
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
mov ebx, esi
mov dword [esp + 0x28], ebx
jb 0x535b37
cmp al, 0x39
jbe 0x536751
movzx edx, al
mov eax, dword [edi + 0xc]
test byte [edx + eax], 0x10
je 0x535b53
add esi, 1
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x535b43
mov edx, dword [esp + 0x4c]
mov eax, esi
sub eax, ebx
test edx, edx
mov dword [esp + 0x20], eax
je 0x535c41
xor ebx, ebx
test eax, eax
je 0x53675d
cmp byte [esi], cl
jne 0x536769
cmp eax, 0x20
jg 0x536775
cmp dword [esp + 0x38], ebx
jne 0x535b8c
add dword [edi + 0x54], 1
add dword [edx], 8
cmp dword [edi + 0x7c], 0
mov eax, dword [edx]
je 0x535ba1
add eax, 0xc
mov dword [edx], eax
jmp 0x535cdc
cmp dword [edi + 0x30], 0
mov eax, dword [edi + 0x28]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], 0
jle 0x535cdc
lea ebx, [ebx]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx + 4]
jne 0x535c27
mov eax, dword [esp + 0x28]
mov esi, ecx
mov ecx, edx
mov ecx, dword [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x535bee
test dl, dl
je 0x535bf8
add eax, 1
add ecx, 1
sub esi, 1
jne 0x535bd7
jmp 0x535bf8
movzx edx, byte [ecx]
movzx eax, byte [eax]
sub eax, edx
jne 0x535c27
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 8]
jne 0x535ce7
mov eax, dword [edi + 0x24]
test eax, eax
je 0x535c27
movzx ecx, word [eax + 4]
cmp ecx, ebx
je 0x535c21
mov eax, dword [eax]
test eax, eax
jne 0x535c11
jmp 0x535c27
mov word [eax + 6], 1
mov eax, dword [esp + 0x48]
add dword [esp + 0x24], 0xc
add eax, 1
cmp eax, dword [edi + 0x30]
mov dword [esp + 0x48], eax
jl 0x535bc0
jmp 0x535cdc
mov edx, dword [edi + 0x2c]
mov edi, dword [edi + 0x30]
test edi, edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], edi
jle 0x535cbd
mov ebx, edx
mov edi, dword [esp + 0x20]
test edi, edi
mov eax, dword [esp + 0x28]
lea ecx, [ebx + 2]
je 0x535c94
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x535c8a
test dl, dl
je 0x535c94
add eax, 1
add ecx, 1
sub edi, 1
jne 0x535c73
jmp 0x535c94
movzx ecx, byte [ecx]
movzx eax, byte [eax]
sub eax, ecx
jne 0x535c9f
mov edx, dword [esp + 0x20]
cmp byte [ebx + edx + 2], 0
je 0x535cb6
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
add ebx, dword [ecx + 0x34]
add eax, 1
cmp eax, dword [ecx + 0x30]
mov dword [esp + 0x48], eax
jl 0x535c64
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x48], eax
jge 0x535638
mov eax, dword [esp + 0x80]
movzx ebx, byte [eax + 1]
mov bh, byte [eax]
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x38], 0
je 0x535e1a
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], eax
jne 0x535dc9
test ebx, ebx
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov byte [ecx], 0
je 0x535d29
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x14]
push ebx
push edx
push eax
call fcn.005302f0
mov dword [esp + 0x24], eax
test eax, eax
jne 0x535d8e
cmp ebx, dword [esi + 0x44]
jg 0x536781
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x10]
add eax, ebx
mov dword [esp + 0x24], eax
lea eax, [ecx + edx - 0x64]
cmp dword [esi + 0x20], eax
jb 0x535d69
call fcn.0052f3c0
test eax, eax
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
jne 0x536797
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x20]
mov edx, eax
sub edx, dword [esi + 0x14]
add edx, 1
sar edx, 8
mov byte [ecx], dl
sub al, byte [esi + 0x14]
mov edx, dword [esi + 0x20]
add al, 1
mov byte [edx + 1], al
add dword [esi + 0x20], 2
jmp 0x535dc5
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x535dc9
cmp dword [esp + 0x174], ecx
jg 0x535dc9
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x40]
push edx
push eax
mov eax, dword [esp + 0xd8]
call fcn.00530960
test eax, eax
jne 0x53678d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov byte [ecx], 0x75
mov edx, eax
sub edx, dword [esi + 0x14]
add ecx, 3
sar edx, 8
mov byte [ecx - 2], dl
sub al, byte [esi + 0x14]
cmp dword [esp + 0x3c], 0xfffffffe
mov byte [ecx - 1], al
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb0], 0
jne 0x5363ad
mov edi, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x3c], 0xffffffff
mov ebp, ecx
add esi, 1
jmp 0x53262f
cmp dword [esp + 0x4c], 0
jne 0x535f98
cmp dword [edi + 0x78], 0
je 0x535f98
mov esi, dword [esp + 0x48]
mov eax, dword [edi + 0x34]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x90], esi
add esi, 1
add ecx, eax
cmp esi, dword [edi + 0x30]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], esi
jge 0x535f98
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
mov al, byte [ecx + 2]
add ecx, 2
add edx, 2
cmp al, byte [edx]
jne 0x535e91
lea ebx, [ebx]
test al, al
je 0x535e9b
mov al, byte [ecx + 1]
add ecx, 1
add edx, 1
cmp al, byte [edx]
je 0x535e80
movzx edx, byte [edx]
movzx eax, byte [ecx]
sub eax, edx
jne 0x535eaf
mov eax, dword [edi + 0x34]
add dword [esp + 0x2c], 1
add dword [esp + 0x24], eax
add esi, 1
cmp esi, dword [edi + 0x30]
jl 0x535e62
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
mov dword [esp + 0x48], esi
jle 0x535f98
cmp dword [esp + 0x3c], 0xfffffffe
jne 0x535ecf
mov dword [esp + 0x3c], 0xffffffff
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
test byte [esp + 0x50], 1
mov esi, dword [esp + 0x24]
mov dword [esp + 0x70], eax
setne al
add al, 0x73
mov byte [ebp], al
mov eax, dword [esp + 0x90]
mov dword [esp + 0x20], ebp
add ebp, 1
mov byte [ebp + 1], al
mov edx, eax
shr edx, 8
mov byte [ebp], dl
add ebp, 2
mov eax, ecx
sar eax, 8
mov byte [ebp], al
mov byte [ebp + 1], cl
add ebp, 2
cmp dword [esp + 0x80], esi
mov dword [esp + 0x14], ebp
jae 0x5363af
mov edx, dword [esp + 0x80]
lea esp, [esp]
movzx ecx, byte [edx + 1]
mov ch, byte [edx]
mov eax, 1
cmp ecx, 0x20
jge 0x535f42
shl eax, cl
or dword [edi + 0x50], eax
cmp ecx, dword [edi + 0x4c]
jle 0x535f4d
mov dword [edi + 0x4c], ecx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x535f6a
movzx ebx, word [eax + 4]
cmp ebx, ecx
je 0x535f64
mov eax, dword [eax]
test eax, eax
jne 0x535f54
jmp 0x535f6a
mov word [eax + 6], 1
add edx, dword [edi + 0x34]
cmp edx, esi
jb 0x535f30
mov esi, dword [esp + 0x10]
mov dword [esp + 0x80], edx
add esi, 1
jmp 0x53262f
cmp esi, edx
jge 0x53602c
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
neg esi
mov ebx, esi
cmp dword [esp + 0x3c], 0xfffffffe
jne 0x535fa7
mov dword [esp + 0x3c], 0xffffffff
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
test byte [esp + 0x50], 1
mov dword [esp + 0x20], ebp
setne cl
add cl, 0x71
mov byte [ebp], cl
add ebp, 1
mov edx, ebx
sar edx, 8
mov byte [ebp], dl
mov byte [ebp + 1], bl
add ebp, 2
cmp ebx, 0x20
mov dword [esp + 0x70], eax
mov dword [esp + 0x14], ebp
mov eax, 1
jge 0x535fe6
mov ecx, ebx
shl eax, cl
or dword [edi + 0x50], eax
cmp ebx, dword [edi + 0x4c]
jle 0x535ff1
mov dword [edi + 0x4c], ebx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5363af
lea esp, [esp]
movzx ecx, word [eax + 4]
cmp ecx, ebx
je 0x53601a
mov eax, dword [eax]
test eax, eax
jne 0x536000
mov esi, dword [esp + 0x10]
add esi, 1
jmp 0x53262f
mov word [eax + 6], 1
mov esi, dword [esp + 0x10]
add esi, 1
jmp 0x53262f
cmp esi, 0xf
je 0x5360d3
cmp esi, 0x10
je 0x5360d3
cmp esi, 5
je 0x53604d
cmp esi, 4
je 0x53604d
cmp esi, 1
jne 0x53605f
mov edi, dword [esp + 0x18]
cmp dword [edi + 0x48], edx
jne 0x536063
mov dword [edi + 0x48], 1
jmp 0x536063
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
lea eax, [esi - 0x1d]
cmp eax, 5
ja 0x53608f
mov edx, dword [esp + 0x10]
mov esi, dword [eax*4 + 0x597e60]
add edx, 1
sub esi, 1
mov dword [esp + 0x8c], edx
add esi, 1
jmp 0x53262f
lea eax, [esi - 6]
mov ecx, 0x10
cmp ecx, eax
sbb eax, eax
not eax
and eax, ebp
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
cmp dword [esp + 0x40], edx
mov dword [esp + 0x70], eax
jne 0x5360bb
cmp esi, 0xe
lea eax, [ecx - 3]
je 0x5360bd
mov eax, esi
mov byte [ebp], al
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], edx
mov edx, edi
push edx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x38]
lea ecx, [esp + 0x104]
call fcn.0052fc40
test eax, eax
je 0x536797
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov ebp, dword [esp + 0x14]
mov cl, byte [esp + 0x54]
xor edx, edx
cmp esi, 0x10
sete dl
mov dword [esp + 0x70], eax
mov dword [esp + 0x20], ebp
cmp edx, dword [esp + 0xf8]
mov dl, byte [esp + 0x2c]
setne al
add al, 0xf
mov byte [ebp], al
add ebp, 1
mov byte [ebp], cl
add ebp, 1
mov byte [ebp], dl
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53262f
movzx eax, byte [esp + 0x101]
movzx edx, byte [esp + 0x102]
and eax, 0x3f
test bl, 0x10
jne 0x536179
and ebx, 0xf
shl ebx, 6
or eax, ebx
jmp 0x5361fc
and edx, 0x3f
test bl, 8
jne 0x53619b
and ebx, 7
shl ebx, 6
or eax, ebx
shl eax, 6
or eax, edx
movzx edx, byte [esp + 0x103]
jmp 0x5361fc
test bl, 4
jne 0x5361c7
and ebx, 3
shl ebx, 6
or eax, ebx
shl eax, 6
or eax, edx
movzx edx, byte [esp + 0x103]
and edx, 0x3f
shl eax, 6
or eax, edx
movzx edx, byte [esp + 0x104]
jmp 0x5361fc
and ebx, 1
shl ebx, 6
or eax, ebx
shl eax, 6
or eax, edx
movzx edx, byte [esp + 0x103]
and edx, 0x3f
shl eax, 6
or eax, edx
movzx edx, byte [esp + 0x104]
and edx, 0x3f
shl eax, 6
or eax, edx
movzx edx, byte [esp + 0x105]
and edx, 0x3f
shl eax, 6
or eax, edx
mov ebx, eax
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x576898]
shl eax, 7
and ebx, 0x8000007f
jns 0x536228
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx edx, word [eax*2 + 0x578a98]
movzx eax, byte [edx*8 + 0x57521b]
test eax, eax
je 0x53627b
mov byte [ebp], 0x10
add ebp, 1
mov byte [ebp], 9
add ebp, 1
mov byte [ebp], al
add ebp, 1
cmp dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0x14], ebp
jne 0x5363af
mov esi, dword [esp + 0x10]
or eax, 0xffffffff
mov dword [esp + 0x84], eax
mov dword [esp + 0x3c], eax
add esi, 1
jmp 0x53262f
test byte [esp + 0x50], 1
setne al
add al, 0x1d
mov byte [ebp], al
add ebp, 1
xor eax, eax
test ecx, ecx
mov dword [esp + 0x14], ebp
jbe 0x5362b8
jmp 0x5362a0
mov dl, byte [esp + eax + 0x100]
mov byte [ebp], dl
add eax, 1
add ebp, 1
cmp eax, ecx
jb 0x5362a0
mov dword [esp + 0x14], ebp
mov dl, byte [esp + 0x100]
cmp dl, 0xd
je 0x5362c9
cmp dl, 0xa
jne 0x5362d0
or dword [edi + 0x64], 0x800
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x536357
cmp ecx, 1
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x6c], eax
je 0x53631e
cmp dword [esp + 0xa4], 0
je 0x53631e
mov esi, dword [esp + 0x10]
or eax, 0xffffffff
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], eax
add esi, 1
jmp 0x53262f
cmp ecx, 1
mov eax, dword [esp + 0xa4]
movzx edx, dl
mov dword [esp + 0x88], edx
mov dword [esp + 0x3c], eax
je 0x5363af
movzx ecx, byte [ebp - 1]
mov edx, dword [edi + 0x68]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x64], edx
add esi, 1
jmp 0x53262f
cmp ecx, 1
mov edx, dword [esp + 0x88]
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
je 0x53638b
cmp dword [esp + 0xa4], 0
jne 0x5363b3
movzx eax, byte [ebp - 1]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x68]
or eax, dword [esp + 0xa4]
add esi, 1
mov dword [esp + 0x64], eax
jmp 0x53262f
mov edi, esi
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add esi, 1
jmp 0x53262f
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x34
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x14
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x34
jmp 0x53679b
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0x3c]
mov dword [edx], ecx
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x64]
mov dword [eax], edx
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0xec]
mov dword [edx], ecx
mov ecx, dword [esp + 0xd4]
mov dword [eax], ebp
mov dword [ecx], esi
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x53645f
mov eax, dword [ecx]
mov edx, dword [esp + 0xb4]
mov edi, ebp
mov ebx, 0x7fffffeb
sub edi, edx
sub ebx, eax
cmp ebx, edi
jl 0x5363ce
sub eax, edx
add eax, ebp
mov dword [ecx], eax
mov eax, 1
jmp 0x5367a6
mov cl, byte [esi + 1]
mov edx, dword [esp + 0x1c]
sub cl, 0x3a
neg cl
sbb ecx, ecx
and ecx, 0x12
add ecx, 0xd
mov dword [edx], ecx
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1f
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x53679b
mov edx, edi
mov dword [edx], 0x47
jmp 0x536797
mov eax, dword [esp + 0x1c]
mov dword [eax], 7
jmp 0x53679b
mov ecx, esi
mov dword [ecx], 0x53
jmp 0x536797
mov eax, dword [esp + 0x1c]
mov dword [eax], 8
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 6
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 9
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x14
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x14
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x4b
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3c
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3b
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x42
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3b
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3c
jmp 0x53679b
mov al, byte [esi]
cmp al, 0x30
jb 0x536586
cmp al, 0x39
ja 0x536586
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x536576
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x3d
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x54
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1c
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
sub esi, 1
mov dword [ecx], 0x1a
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x23
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xf
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3d
jmp 0x53679b
add esi, edx
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x18
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x27
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x26
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x54
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x31
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x30
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x2b
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x41
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x15
jmp 0x536797
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x39
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3f
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0xc
sub esi, 1
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x52
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x36
jmp 0x536797
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x1b
jmp 0x536797
mov edx, dword [esp + 0x1c]
mov dword [edx], 0xe
jmp 0x53679b
mov al, byte [esi]
cmp al, 0x30
jb 0x536711
lea esp, [esp]
cmp al, 0x39
ja 0x536711
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x536700
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x3d
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x1d
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3a
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3a
jmp 0x53679b
mov eax, edi
mov dword [eax], 0x45
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x54
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3e
jmp 0x53679b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x2a
jmp 0x53679b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x30
jmp 0x53679b
mov edx, dword [esp + 0x1c]
mov dword [edx], 0xf
jmp 0x536797
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x28
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xd4]
mov dword [edx], esi
xor eax, eax
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005498cd
add esp, 0x144
ret 0x28