Function at 0x532240
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 [0x596fb8]
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 0x5323b5
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x5323b5
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 0x53246a
mov ecx, dword [edi + 0x10]
lea edx, [edx + ecx - 0x64]
cmp ebp, edx
ja 0x53611f
mov ecx, dword [esp + 0xb4]
cmp ebp, ecx
jae 0x5323e4
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 0x53612e
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 0x532450
cmp eax, dword [esp + 0xc8]
jbe 0x53245d
mov esi, dword [esp + 0xc8]
mov edi, eax
mov ecx, ebp
sub ecx, edi
mov eax, esi
call fcn.0052f0d0
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 0x532476
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x14], ecx
mov ebp, ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb4], ebp
jmp 0x532476
add edx, dword [edi + 0x10]
cmp dword [edi + 0x20], edx
ja 0x53613d
cmp dword [esp + 0x74], 0
je 0x5325c4
test ebx, ebx
je 0x5325c4
cmp ebx, 0x5c
jne 0x5324a7
cmp byte [esi + 1], 0x45
jne 0x5324a7
add esi, 1
mov dword [esp + 0x74], 0
add esi, 1
jmp 0x53238f
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x5324df
test eax, eax
jne 0x5324d4
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.0x5327a9.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 0x53256b
cmp ebx, 0xc0
jb 0x53256b
mov al, byte [esi + ecx]
add esi, ecx
and al, 0xc0
cmp al, 0x80
jne 0x53256b
jmp 0x532550
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 0x532550
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 0x535fdb
test byte [esp + 0x50], 1
je 0x535fe0
movzx ebx, byte [esp + 0x100]
cmp ebx, 0xc0
jb 0x535f66
test bl, 0x20
jne 0x535eb4
movzx edx, byte [esp + 0x101]
and ebx, 0x1f
and edx, 0x3f
shl ebx, 6
or ebx, edx
jmp 0x535f66
mov eax, dword [esp + 0x50]
and eax, 8
mov dword [esp + 0x54], eax
je 0x5326a4
mov eax, dword [edi + 0xc]
test byte [ebx + eax], 1
je 0x5325f0
mov edi, edi
add esi, 1
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test byte [eax + ebx], 1
jne 0x5325e0
cmp ebx, 0x23
jne 0x5326a4
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x53263d
mov ecx, dword [edi + 0x84]
test ecx, ecx
je 0x532642
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x532669
mov edx, dword [esp + 0x40]
push edx
lea edx, [edi + 0x88]
push edx
push eax
push ecx
push esi
call fcn.00546ca0
test eax, eax
mov esi, dword [esp + 0x10]
je 0x532669
add esi, dword [edi + 0x88]
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
jmp 0x5325d5
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x532669
cmp al, byte [edi + 0x8c]
jne 0x532669
cmp ecx, 1
je 0x532633
mov al, byte [esi + 1]
cmp al, byte [edi + 0x8d]
je 0x532633
add esi, 1
cmp dword [esp + 0x40], 0
mov dword [esp + 0x10], esi
je 0x532692
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x532692
add esi, 1
mov dword [esp + 0x10], esi
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
je 0x532681
mov al, byte [esi]
test al, al
jne 0x532606
movzx ebx, al
jmp 0x5325d5
cmp ebx, 0x2a
je 0x5327b0
cmp ebx, 0x2b
je 0x5327b0
cmp ebx, 0x3f
je 0x5327b0
cmp ebx, 0x7b
jne 0x5326d4
lea eax, [esi + 1]
call fcn.0052f1a0
test eax, eax
jne 0x5327b0
xor ecx, ecx
cmp dword [esp + 0x98], ecx
mov dword [esp + 0x2c], ecx
je 0x532742
cmp dword [esp + 0x8c], ecx
jne 0x532742
mov eax, dword [esp + 0xc0]
mov edx, eax
sub eax, 1
test edx, edx
mov dword [esp + 0xc0], eax
jg 0x532742
cmp dword [esp + 0x4c], ecx
jne 0x532737
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 0x532799
test ecx, ecx
jne 0x532799
cmp dword [esp + 0x8c], ecx
jne 0x532799
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.0x5327a9.1
movzx eax, byte [ebx + 0x536558]
jmp dword [eax*4 + 0x536524]
mov ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x532742
test byte [esp + 0x50], 2
mov dword [esp + 0x20], 0
je 0x5327f6
cmp dword [esp + 0x3c], 0xfffffffe
jne 0x5327df
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 0x53238f
mov byte [ebp], 0x1b
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53238f
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 0x53238f
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x532846
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 0x53238f
test dword [edi + 0x60], 0x2000000
je case.0x5327a9.1
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x40
jmp 0x5364fb
mov ebx, 6
lea eax, [esi + 1]
mov ecx, str._:_:__
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5328f4
test dl, dl
je 0x5328fe
add eax, 1
add ecx, 1
sub ebx, 1
jne 0x5328c5
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b__w_
sub esi, 1
add esi, 1
jmp 0x53238f
movzx ecx, byte [ecx]
movzx eax, byte [eax]
sub eax, ecx
jne 0x532918
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b__w_
sub esi, 1
add esi, 1
jmp 0x53238f
mov ebx, 6
lea eax, [esi + 1]
mov ecx, 0x573564
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x532954
test dl, dl
je 0x53295e
add eax, 1
add ecx, 1
sub ebx, 1
jne 0x532925
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b___w_
sub esi, 1
add esi, 1
jmp 0x53238f
movzx edx, byte [ecx]
movzx eax, byte [eax]
sub eax, edx
jne 0x532978
add esi, 7
mov dword [esp + 0x8c], esi
mov esi, str._b___w_
sub esi, 1
add esi, 1
jmp 0x53238f
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 0x532995
cmp al, 0x2e
je 0x532995
cmp al, 0x3d
jne 0x5329b0
lea eax, [esp + 0x94]
push eax
mov eax, esi
call fcn.00531c60
test eax, eax
mov esi, dword [esp + 0x10]
jne 0x5361c9
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 0x532a19
cmp byte [esi + 1], 0x45
lea eax, [esi + 1]
jne 0x5329d6
mov esi, eax
jmp 0x5329b6
mov edx, 3
mov edi, 0x573560
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x532a02
test cl, cl
je 0x532a0c
add eax, 1
add edi, 1
sub edx, 1
jne 0x5329e0
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
add esi, 3
jmp 0x5329b6
movzx ecx, byte [edi]
movzx eax, byte [eax]
sub eax, ecx
jne 0x532a7a
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
add esi, 3
jmp 0x5329b6
test ecx, ecx
jne 0x532a27
cmp ebx, 0x5e
jne 0x532a27
lea ecx, [ebx - 0x5d]
jmp 0x5329b2
cmp ebx, 0x5d
jne 0x532a7a
test dword [edi + 0x60], 0x2000000
je 0x532a7a
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 0x532a59
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 0x53238f
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 0x53623a
jmp 0x532ae0
cmp dword [esp + 0x40], 0
je 0x532c11
cmp ebx, 0xc0
jb 0x532c11
movzx ebx, byte [esi]
cmp ebx, 0xc0
mov dword [esp + 0x28], ebx
jb 0x532c11
test bl, 0x20
jne 0x532b26
movzx eax, byte [esi + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 1
jmp 0x532c09
test bl, 0x10
jne 0x532b50
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 0x532c09
test bl, 8
jne 0x532b86
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 0x532c09
test bl, 4
jne 0x532bc5
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 0x532c09
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 0x532c25
mov dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x532c39
cmp edx, eax
jbe 0x532c39
sub edx, eax
add dword [ecx], edx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x74]
test edx, edx
je 0x532c64
cmp ebx, 0x5c
jne 0x5331e7
cmp byte [esi + 1], 0x45
jne 0x5331e7
mov dword [esp + 0x74], 0
add esi, 1
jmp 0x5334ce
cmp ebx, 0x5b
jne 0x532ef5
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x532c80
cmp al, 0x2e
je 0x532c80
cmp al, 0x3d
jne 0x5331e7
lea edx, [esp + 0x94]
push edx
mov eax, esi
call fcn.00531c60
test eax, eax
mov esi, dword [esp + 0x10]
je 0x5331e3
cmp byte [esi + 1], 0x3a
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 8]
mov dword [esp + 0x6c], 0
jne 0x5361e4
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5e
jne 0x532cd3
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.00531cc0
mov edi, eax
test edi, edi
jl 0x5361f3
mov eax, dword [esp + 0x50]
test al, 1
je 0x532cfc
cmp edi, 2
jg 0x532cfc
xor edi, edi
test eax, 0x20000000
mov edx, dword [esp + 0x6c]
je 0x532db0
mov eax, edx
neg eax
sbb eax, eax
and eax, 0xe
add eax, edi
mov eax, dword [eax*4 + 0x596e98]
test eax, eax
je 0x532d3a
mov edx, dword [esp + 0x94]
add edx, 1
mov dword [esp + 0x8c], edx
lea esi, [eax - 1]
jmp 0x5334ce
mov eax, edi
sub eax, 8
je 0x532e04
sub eax, 1
je 0x532e0b
sub eax, 1
je 0x532e12
cmp dword [esp + 0x58], 0
jne 0x532db0
test edx, edx
je 0x532db0
cmp dword [esp + 0x2c], 0
jne 0x532d76
mov eax, dword [esp + 0x94]
cmp byte [eax + 2], 0x5d
je 0x532db0
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.00547050
mov ecx, dword [esp + 0x30]
add ecx, eax
push ecx
push 0x10ffff
mov dword [esp + 0x38], ecx
call fcn.00547050
add dword [esp + 0x30], eax
mov edx, dword [esp + 0x6c]
lea eax, [edi + edi*2]
mov esi, dword [eax*4 + 0x5722c0]
add esi, ebx
mov ecx, 8
lea edi, [esp + 0x130]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax*4 + 0x5722c4]
test ecx, ecx
mov esi, dword [eax*4 + 0x5722c8]
jl 0x532e74
xor eax, eax
add ecx, ebx
test esi, esi
jl 0x532e60
jmp 0x532df0
mov bl, byte [ecx + eax]
or byte [esp + eax + 0x130], bl
add eax, 1
cmp eax, 0x20
jb 0x532df0
jmp 0x532e74
mov ecx, 0xb
jmp 0x532e17
mov ecx, 0xc
jmp 0x532e17
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 0x5334ce
mov bl, byte [ecx + eax]
not bl
and byte [esp + eax + 0x130], bl
add eax, 1
cmp eax, 0x20
jb 0x532e60
test esi, esi
jge 0x532e7a
neg esi
cmp esi, 1
jne 0x532e89
and byte [esp + 0x131], 0xc3
jmp 0x532e96
cmp esi, 2
jne 0x532e96
and byte [esp + 0x13b], 0x7f
xor eax, eax
test edx, edx
je 0x532ec0
lea esp, [esp]
mov cl, byte [esp + eax + 0x130]
not cl
or byte [esp + eax + 0x108], cl
add eax, 1
cmp eax, 0x20
jb 0x532ea0
jmp 0x532ed6
mov dl, byte [esp + eax + 0x130]
or byte [esp + eax + 0x108], dl
add eax, 1
cmp eax, 0x20
jb 0x532ec0
mov esi, dword [esp + 0x94]
add esi, 1
mov dword [esp + 0x34], 1
mov dword [esp + 0x44], 2
jmp 0x5334ce
cmp ebx, 0x5c
jne 0x5331e7
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.0052f220
cmp dword [edi], 0
mov esi, eax
jne 0x5364f7
test esi, esi
jne 0x532f46
mov ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0x10]
jmp 0x5331df
cmp esi, 5
jne 0x532f57
lea ebx, [esi + 3]
mov esi, dword [esp + 0x10]
jmp 0x5331df
cmp esi, 0xc
je 0x536202
cmp esi, 0x1a
jne 0x532f8a
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x532f7d
cmp byte [esi + 2], 0x45
jne 0x532f7d
add esi, 2
jmp 0x5334ca
mov dword [esp + 0x74], 1
jmp 0x5334ca
cmp esi, 0x19
je 0x5334c6
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.0x532fbf.12
movzx ecx, byte [ecx + 0x53660c]
jmp dword [ecx*4 + 0x5365d8]
mov esi, dword [esi*4 + 0x596e0c]
mov edx, dword [esp + 0x10]
sub esi, edi
sub dword [esp + 0x34], edi
mov dword [esp + 0x8c], edx
jmp 0x5334ca
xor ecx, ecx
jmp 0x532ff0
mov dl, byte [eax + ecx + 0x40]
or byte [esp + ecx + 0x108], dl
add ecx, edi
cmp ecx, 0x20
jb 0x532ff0
jmp 0x5334c6
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 0x533010
jmp 0x5334c6
xor ecx, ecx
jmp 0x533030
mov dl, byte [eax + ecx + 0xa0]
or byte [esp + ecx + 0x108], dl
add ecx, edi
cmp ecx, 0x20
jb 0x533030
jmp 0x5334c6
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 0x533050
jmp 0x5334c6
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 0x533080
jmp 0x5334c6
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 0x5330b0
jmp 0x5334c6
push 0xffffffffffffffff
push 0x5736d8
push edx
push ebx
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x11c]
push edx
call fcn.00532120
jmp 0x5334c6
push edx
push ebx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x114]
push ecx
mov eax, 0x5736d8
call fcn.00532190
jmp 0x5334c6
push 0xffffffffffffffff
push 0x573728
push edx
push ebx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x11c]
push eax
call fcn.00532120
jmp 0x5334c6
push edx
push ebx
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x114]
push edx
mov eax, 0x573728
call fcn.00532190
jmp 0x5334c6
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.0052f9a0
test eax, eax
je 0x5364f7
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 0x5334c6
test bl, 0x40
mov esi, dword [esp + 0x10]
jne 0x53620f
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 0x533209
lea ecx, [ecx]
cmp byte [esi + 2], 0x45
jne 0x533205
add esi, 2
xor edx, edx
mov dword [esp + 0x10], esi
cmp byte [esi + 1], 0x5c
je 0x5331f0
mov dword [esp + 0x74], edx
cmp ebx, 0xd
mov ecx, esi
je 0x533215
cmp ebx, 0xa
jne 0x533220
mov eax, dword [esp + 0x18]
or dword [eax + 0x64], 0x800
test edx, edx
jne 0x533473
cmp byte [esi + 1], 0x2d
jne 0x533473
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x53328f
mov edi, edi
cmp byte [esi + 1], 0x45
jne 0x533254
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x533240
jmp 0x53328f
cmp byte [esi], 0x5c
jne 0x53328f
lea esp, [esp]
cmp byte [esi + 1], 0x51
jne 0x53328f
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x533286
cmp byte [esi + 1], 0x45
jne 0x533286
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x533260
jmp 0x53328f
mov edx, 1
mov dword [esp + 0x74], edx
mov al, byte [esi]
test al, al
je 0x53346d
test edx, edx
jne 0x5332a5
cmp al, 0x5d
je 0x53346d
cmp dword [esp + 0x40], 0
movzx ebx, al
mov dword [esp + 0x68], ebx
je 0x533397
cmp ebx, 0xc0
jb 0x533397
test bl, 0x20
jne 0x5332df
movzx eax, byte [esi + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
add esi, 1
jmp 0x53338f
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x533307
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x53338d
test bl, 8
jne 0x53332a
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 0x53338d
test bl, 4
jne 0x533359
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 0x53338d
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 0x533421
cmp ebx, 0x5c
jne 0x5333e3
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.0052f220
cmp dword [esi], 0
jne 0x5364f7
test eax, eax
je 0x533419
cmp eax, 5
jne 0x53621e
lea ebx, [eax + 3]
jmp 0x53341d
cmp ebx, 0x5b
jne 0x533421
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x5333f7
cmp al, 0x2e
je 0x5333f7
cmp al, 0x3d
jne 0x533421
lea eax, [esp + 0x94]
push eax
mov eax, esi
call fcn.00531c60
test eax, eax
je 0x53341d
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x53
jmp 0x5364f7
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
cmp ebx, eax
jb 0x53622b
je 0x533473
cmp ebx, 0xd
mov dword [esp + 0x44], 2
je 0x533441
cmp ebx, 0xa
jne 0x53344e
mov eax, dword [esp + 0x18]
or dword [eax + 0x64], 0x800
jmp 0x533452
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 0x5334bd
mov esi, ecx
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x44]
cmp eax, 2
jge 0x533483
add eax, 1
mov dword [esp + 0x44], eax
cmp dword [esp + 0x74], 0
jne 0x5334a0
cmp dword [esp + 0x24], 0
jne 0x5334a0
cmp eax, 1
jne 0x5334a0
cmp byte [esi + 1], 0x5d
je 0x533628
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.00531f00
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 0x53350e
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x53623a
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 0x53623a
cmp ebx, 0x5d
jne 0x532ae0
cmp dword [esp + 0x74], 0
jne 0x532ae0
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x54]
cmp edx, esi
lea ecx, [ebx - 0x5c]
ja 0x533535
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x533545
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 0x5337ba
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x53358e
cmp dword [esp + 0x38], ecx
je 0x53358e
test dword [esp + 0x50], 0x20000000
je 0x5337ba
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 0x5335b1
or al, 4
mov byte [ebp], al
cmp dword [esp + 0x34], 0
jle 0x533789
or byte [ebp], 2
mov ecx, dword [esp + 0x30]
add ebp, 1
sub ecx, ebp
lea eax, [ebp + 0x20]
mov edi, ebp
call fcn.0052f0d0
cmp dword [esp + 0x58], 0
je 0x533608
cmp dword [esp + 0x24], 0
jne 0x533608
xor eax, eax
jmp 0x5335f0
mov cl, byte [esp + eax + 0x108]
not cl
mov byte [esp + eax + 0x108], cl
add eax, 1
cmp eax, 0x20
jb 0x5335f0
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 0x533793
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 0x533743
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x53365a
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 0x5336e7
test byte [esp + 0x50], 1
je 0x5336e7
mov ecx, dword [esp + 0x28]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x575948]
mov edx, ecx
shl eax, 7
and edx, 0x8000007f
jns 0x5336a5
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x577b48]
movzx eax, byte [eax*8 + 0x5742cb]
test eax, eax
je 0x5336eb
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 0x53238f
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 0x533729
cmp ecx, 0x7f
jbe 0x533729
push ebp
push ecx
call fcn.00547050
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add ebp, eax
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53238f
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 0x53238f
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x28]
je 0x533770
cmp eax, 0x7f
jbe 0x533770
lea ecx, [esp + 0x100]
push ecx
push eax
call fcn.00547050
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, eax
jmp 0x53256b
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov byte [esp + 0x100], al
mov ecx, 1
jmp 0x53256b
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 0x53238f
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x5337c6
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 0x533818
test ecx, ecx
je 0x533808
jmp 0x5337f0
mov cl, byte [esp + eax + 0x108]
not cl
mov byte [esp + eax + 0x108], cl
add eax, 1
cmp eax, 0x20
jb 0x5337f0
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 0x53238f
test ecx, ecx
je case.0x5327a9.1
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x64]
push eax
lea eax, [esi + 1]
call fcn.0052fb10
cmp dword [edi], 0
mov esi, eax
mov dword [esp + 0x10], esi
jne 0x5364fb
mov ebp, dword [esp + 0x14]
jmp 0x53388e
mov dword [esp + 0x5c], 0xffffffff
jmp 0x533886
mov dword [esp + 0x60], 1
mov dword [esp + 0x5c], 0xffffffff
jmp 0x53388e
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 0x536249
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x5338d3
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 0x5339b5
add esi, 1
nop
movzx eax, byte [esi]
mov ecx, dword [edi + 0xc]
test byte [eax + ecx], 1
je 0x53391d
mov eax, ecx
mov edi, edi
movzx edx, byte [esi + 1]
add esi, 1
test byte [edx + eax], 1
jne 0x533910
cmp byte [esi], 0x23
jne 0x5339ae
mov al, byte [esi + 1]
add esi, 1
test al, al
je 0x533900
mov ecx, dword [edi + 0x84]
test ecx, ecx
je 0x53395d
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x533984
push ebx
lea edx, [edi + 0x88]
push edx
push eax
push ecx
push esi
call fcn.00546ca0
test eax, eax
je 0x533984
add esi, dword [edi + 0x88]
jmp 0x533900
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x533984
cmp al, byte [edi + 0x8c]
jne 0x533984
cmp ecx, 1
je 0x533955
mov al, byte [esi + 1]
cmp al, byte [edi + 0x8d]
je 0x533955
add esi, 1
test ebx, ebx
je 0x5339a3
mov cl, byte [esi]
and cl, 0xc0
cmp cl, 0x80
jne 0x5339a3
mov dl, byte [esi + 1]
add esi, 1
and dl, 0xc0
cmp dl, 0x80
je 0x533995
mov al, byte [esi]
test al, al
jne 0x533930
jmp 0x533900
add esi, 0xffffffff
mov dword [esp + 0x10], esi
mov al, byte [esi + 1]
cmp al, 0x2b
jne 0x5339cf
xor ebx, ebx
add esi, 1
mov dword [esp + 0x34], 1
mov dword [esp + 0x10], esi
jmp 0x5339ea
cmp al, 0x3f
jne 0x5339e3
mov ebx, dword [esp + 0xcc]
add esi, 1
mov dword [esp + 0x10], esi
jmp 0x5339ea
mov ebx, dword [esp + 0xdc]
mov edi, dword [esp + 0x20]
cmp byte [edi], 0x75
mov dword [esp + 0x44], ebx
jne 0x533a98
lea esi, [edi + 3]
mov eax, esi
cmp eax, edi
jbe 0x533a1d
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 0x533a2f
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 0x533a94
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
mov esi, dword [ecx + 0x20]
add eax, 2
cmp esi, eax
jb 0x533a94
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 0x533a94
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 0x534185
cmp al, 0x1e
je 0x534185
cmp al, 0x1f
je 0x534185
cmp al, 0x20
je 0x534185
cmp al, 0x17
jae 0x533acf
movzx edx, al
mov ecx, 0x34
mov dword [esp + 0x28], edx
jmp 0x534238
cmp al, 0x6e
je 0x5340e9
cmp al, 0x6f
je 0x5340e9
cmp al, 0x70
je 0x5340e9
cmp al, 0x71
je 0x5340e9
cmp al, 0x72
je 0x5340e9
cmp al, 0x73
je 0x5340e9
cmp al, 0x74
je 0x5340e9
cmp al, 0x7d
jb 0x5340d2
cmp al, 0x87
ja 0x5340d2
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 0x533b42
cmp byte [eax + 3], 0x91
je 0x5345ce
cmp byte [eax], 0x81
jae 0x533b6a
cmp dword [esp + 0x60], 0
jg 0x5345ce
mov eax, dword [esp + 0x5c]
test eax, eax
jl 0x533b5f
cmp eax, 1
jle 0x533b6e
mov eax, 1
mov dword [esp + 0x5c], eax
jmp 0x533b6e
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x533c46
cmp eax, 1
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
jg 0x533be4
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.00531d40
lea esi, [edi + 1]
mov ecx, ebx
mov eax, esi
call fcn.0052f0d0
add dword [esp + 0x14], 1
cmp dword [esp + 0x5c], 0
mov eax, edi
jne 0x533bc1
mov byte [eax], 0xa1
jmp 0x5345ca
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 0x533daa
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.00531d40
lea eax, [edi + 4]
mov ecx, ebx
call fcn.0052f0d0
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 0x533daa
cmp ecx, 1
jle 0x533d9a
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x533c9b
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 0x536258
jl 0x533c81
cmp eax, 0x7fffffff
ja 0x536258
mov eax, dword [edi]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x536258
add eax, ecx
mov dword [edi], eax
jmp 0x533d9a
cmp dword [esp + 0xb0], 0
je 0x533cbf
cmp dword [esp + 0x64], 0
jge 0x533cbf
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 0x533d9a
mov esi, dword [esp + 0x18]
jmp 0x533ce0
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.005499b0
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 0x533d3c
lea esp, [esp]
mov esi, dword [esp + 0x18]
call fcn.0052f120
test eax, eax
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
jne 0x5364f7
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 0x533d10
mov ecx, dword [esi + 0x10]
lea eax, [ecx + ebp]
add ecx, edi
cmp eax, ecx
jae 0x533d7b
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 0x533d50
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 0x533ce0
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
test edx, edx
jle 0x533dac
sub edx, dword [esp + 0x60]
mov dword [esp + 0x5c], edx
test edx, edx
jl 0x533f97
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x533e01
test edx, edx
jle 0x533e01
mov eax, dword [esp + 0xa8]
add eax, 7
mov ecx, eax
imul ecx, edx
imul edx
sub ecx, 6
test edx, edx
jg 0x536267
jl 0x533de7
cmp eax, 0x7fffffff
ja 0x536267
mov eax, dword [edi]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x536267
add eax, ecx
mov dword [edi], eax
jmp 0x533f44
add edx, 0xffffffff
mov dword [esp + 0x58], edx
js 0x533f44
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 0x533e6c
mov byte [esi], 0x83
add esi, 1
test ecx, ecx
jne 0x533e53
xor eax, eax
jmp 0x533e57
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.005499b0
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 0x533ec2
mov esi, dword [esp + 0x18]
call fcn.0052f120
test eax, eax
mov edx, dword [esp + 0x1c]
mov dword [edx], eax
jne 0x5364f7
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 0x533e92
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 0x533f2d
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 0x533ef0
mov esi, dword [esp + 0x14]
add esi, ebx
sub dword [esp + 0x58], 1
mov ebp, edi
mov dword [esp + 0x14], esi
jns 0x533e20
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
test edi, edi
je 0x5344a7
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 0x533f6f
xor edi, edi
jmp 0x533f71
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 0x533f54
mov dword [esp + 0x14], esi
jmp 0x5344a3
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 0x533fb4
cmp al, 0x82
jne 0x533fc0
cmp dword [esp + 0x34], 0
je 0x533fc0
mov byte [edi], 0x83
jmp 0x533fd0
cmp al, 0x81
je 0x5340c5
cmp al, 0x82
je 0x5340c5
cmp dword [esp + 0x4c], 0
jne 0x53400b
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.00530280
test eax, eax
jne 0x534008
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x77
je 0x533fe0
jmp 0x53400b
add byte [edi], 5
cmp byte [edi], 0x87
jne 0x534021
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
cmp byte [ecx + edi], 0x77
je 0x534021
mov byte [edi], 0x8c
cmp dword [esp + 0x34], 0
je 0x5340b8
mov al, byte [edi]
cmp al, 0x87
je 0x53403f
cmp al, 0x8c
je 0x53403f
add al, 1
mov byte [edi], al
mov byte [esi], 0x7b
jmp 0x53409d
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.00531d40
lea eax, [edi + 3]
mov ecx, ebx
call fcn.0052f0d0
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 0x5340a8
mov byte [eax], 0x94
cmp dword [esp + 0x60], 2
jl 0x5345ca
jmp 0x5344a3
mov al, byte [esp + 0x44]
add al, 0x79
mov byte [esi], al
jmp 0x5345ca
mov al, byte [esp + 0x44]
add al, 0x79
mov byte [esi], al
jmp 0x5344a3
cmp al, 0x9d
je 0x5345ce
mov edx, dword [esp + 0x1c]
mov dword [edx], 0xb
jmp 0x5364fb
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x5340fa
mov dword [esp + 0x14], edi
jmp 0x5345ce
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x534119
cmp eax, 0xffffffff
jne 0x534135
add bl, 0x62
mov byte [ebp], bl
add ebp, 1
mov dword [esp + 0x14], ebp
jmp 0x5344a3
cmp ecx, 1
jne 0x53414c
cmp eax, 0xffffffff
jne 0x53414c
add bl, 0x64
mov byte [ebp], bl
add ebp, 1
mov dword [esp + 0x14], ebp
jmp 0x5344a3
cmp eax, 1
jne 0x53414c
add bl, 0x66
mov byte [ebp], bl
add ebp, 1
mov dword [esp + 0x14], ebp
jmp 0x5344a3
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 0x53416e
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 0x5344a3
movzx ecx, al
sub ecx, 0x1e
je 0x5341a9
sub ecx, 1
je 0x5341a2
sub ecx, 1
je 0x53419b
xor ecx, ecx
jmp 0x5341ae
mov ecx, 0x27
jmp 0x5341ae
mov ecx, 0x1a
jmp 0x5341ae
mov ecx, 0xd
cmp dword [esp + 0x40], 0
mov dword [esp + 0x24], ecx
je 0x53420f
mov dl, byte [ebp - 1]
lea edi, [ebp - 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x53420b
mov ecx, edi
mov al, byte [ecx]
and al, 0xc0
cmp al, dl
jne 0x5341df
mov dl, byte [ecx - 1]
sub ecx, 1
and dl, 0xc0
cmp dl, 0x80
je 0x5341d1
mov eax, ebp
sub eax, ecx
push eax
mov dword [esp + 0x2c], eax
push ecx
lea eax, [esp + 0x130]
push eax
call fcn.005499b0
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
add esp, 0xc
or dword [esp + 0x28], 0x10000000
jmp 0x534238
mov edi, dword [esp + 0x20]
cmp al, 0x1e
movzx edx, byte [ebp - 1]
mov dword [esp + 0x28], edx
ja 0x534238
cmp dword [esp + 0x60], 1
jle 0x534238
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 0x53424b
cmp al, 0xf
je 0x53424b
or eax, 0xffffffff
mov dword [esp + 0x38], eax
jmp 0x534257
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 0x5345ce
add ebx, ecx
cmp dword [esp + 0x60], 0
jne 0x5342d0
cmp eax, 0xffffffff
jne 0x534294
mov eax, dword [esp + 0x20]
add bl, 0x21
mov byte [eax], bl
add eax, 1
mov dword [esp + 0x14], eax
jmp 0x534446
cmp eax, 1
jne 0x5342ae
mov eax, dword [esp + 0x20]
add bl, 0x25
mov byte [eax], bl
add eax, 1
mov dword [esp + 0x14], eax
jmp 0x534446
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 0x534446
cmp dword [esp + 0x60], 1
jne 0x53431f
cmp eax, 0xffffffff
jne 0x5342f1
mov eax, dword [esp + 0x20]
add bl, 0x23
mov byte [eax], bl
add eax, 1
mov dword [esp + 0x14], eax
jmp 0x534446
cmp eax, 1
mov dword [esp + 0x14], edi
je 0x5345ce
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 0x534446
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 0x5343a9
cmp dword [esp + 0x40], 0
je 0x53437d
test dword [esp + 0x28], 0x10000000
je 0x53437d
mov edi, dword [esp + 0x28]
and edi, 7
push edi
lea eax, [esp + 0x12c]
push eax
push esi
call fcn.005499b0
add esi, edi
add bl, 0x21
add esp, 0xc
mov byte [esi], bl
add esi, 1
jmp 0x534442
mov cl, byte [esp + 0x28]
mov eax, dword [esp + 0x24]
mov byte [esi], cl
add esi, 1
test eax, eax
jl 0x53439c
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 0x534442
cmp eax, ecx
je 0x534446
cmp dword [esp + 0x40], 0
je 0x5343e7
test dword [esp + 0x28], 0x10000000
je 0x5343e7
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.005499b0
mov ecx, dword [esp + 0x6c]
add esp, 0xc
add esi, edi
jmp 0x5343fa
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 0x534419
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 0x53442d
add bl, 0x25
mov byte [esi], bl
add esi, eax
jmp 0x534442
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 0x534478
test dword [esp + 0x28], 0x10000000
je 0x534478
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.005499b0
add esp, 0xc
add edi, esi
jmp 0x534485
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 0x5344a3
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 0x5345ce
mov eax, dword [esp + 0x7c]
movzx ecx, byte [eax]
lea edx, [ecx - 0x1d]
cmp edx, 0x53
ja case.0x5344cc.33
movzx edx, byte [edx + 0x536640]
jmp dword [edx*4 + 0x53662c]
mov dl, byte [eax + 3]
cmp dl, 0x10
je 0x5344ef
cmp dl, 0xf
je 0x5344ef
movzx ecx, byte [ecx + 0x573630]
xor edx, edx
add ecx, edx
add eax, ecx
jmp 0x53453b
movzx ecx, byte [ecx + 0x573630]
mov edx, 2
add ecx, edx
add eax, ecx
jmp 0x53453b
movzx edx, byte [ecx + 0x573630]
add eax, edx
cmp dword [esp + 0x40], 0
mov dword [esp + 0x7c], eax
je case.0x5344cc.33
movzx ecx, byte [eax - 1]
cmp cl, 0xc0
jb case.0x5344cc.33
and ecx, 0x3f
movzx ecx, byte [ecx + 0x5737c8]
add eax, ecx
jmp 0x53453b
add eax, 0x21
jmp 0x53453b
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 0x5345ce
movzx ecx, byte [eax]
cmp ecx, 0x76
jae 0x534563
mov cl, byte [ecx + 0x5734b8]
test cl, cl
jbe 0x534563
mov byte [eax], cl
jmp 0x5345ca
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.00531d40
mov edi, dword [esp + 0x7c]
lea eax, [edi + 3]
mov ecx, ebx
call fcn.0052f0d0
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 0x53238f
add esi, 1
mov dword [esp + 0x10], esi
mov cl, byte [esi]
cmp cl, 0x3f
jne 0x534640
cmp byte [esi + 1], 0x23
jne 0x534640
add esi, 2
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x534624
cmp al, 0x29
je 0x534633
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x534613
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x12
jmp 0x5364fb
cmp byte [esi], 0
je 0x534624
add esi, 1
jmp 0x53238f
cmp cl, 0x2a
jne 0x53489e
mov al, byte [esi + 1]
cmp al, 0x3a
lea edx, [esi + 1]
mov dword [esp + 0x58], edx
je 0x534667
mov ebx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ebx], 2
je 0x53489e
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, 0x5721a0
mov dword [esp + 0x54], ecx
je 0x5346a2
mov edi, ebx
add esi, 1
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
test byte [eax + edi], 2
jne 0x534692
mov edi, esi
sub edi, edx
cmp byte [esi], 0x3a
mov dword [esp + 0x90], edi
jne 0x5346e9
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
mov ebx, esi
mov dword [esp + 0x38], ebx
je 0x5346d6
cmp al, 0x29
je 0x5346d6
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x5346c5
mov eax, esi
sub eax, ebx
cmp eax, 0xff
mov dword [esp + 0x2c], eax
ja 0x536276
cmp byte [esi], 0x29
jne 0x536285
mov dword [esp + 0x24], 0
mov ebx, 0x5721d0
nop
cmp edi, dword [ebx]
jne 0x5347be
test edi, edi
mov eax, edx
je 0x534729
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5347b0
test dl, dl
je 0x534729
add eax, 1
add ecx, 1
sub edi, 1
jne 0x534710
mov edi, dword [esp + 0x24]
lea eax, [edi + edi*2]
add eax, eax
mov ecx, dword [eax + eax + 0x5721d4]
add eax, eax
cmp ecx, 0x9e
jne 0x5347f0
cmp dword [esp + 0x2c], 0
jne 0x536294
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x24]
test eax, eax
mov dword [ecx + 0x6c], 1
je 0x534782
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 0x534764
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 0x534863
mov dword [esp + 0x3c], 0xffffffff
jmp 0x534863
movzx ecx, byte [ecx]
movzx edx, byte [eax]
sub edx, ecx
je 0x534729
mov eax, dword [ebx]
mov ecx, dword [esp + 0x54]
add dword [esp + 0x24], 1
add ebx, 0xc
cmp ebx, 0x57223c
lea ecx, [ecx + eax + 1]
mov dword [esp + 0x54], ecx
jge 0x5362c1
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x58]
jmp 0x534700
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jne 0x53480a
test ecx, ecx
jl 0x5362a3
mov al, cl
mov byte [ebp], al
movzx esi, cl
jmp 0x534858
cmp dword [eax + 0x5721d8], 0
jl 0x5362b2
mov al, byte [eax + 0x5721d8]
mov byte [ebp], al
movzx esi, al
mov eax, dword [esp + 0x4c]
add ebp, 1
test eax, eax
je 0x534839
add dword [eax], ebx
mov byte [ebp], 0
add ebp, 1
jmp 0x534854
mov eax, dword [esp + 0x38]
push ebx
mov byte [ebp], bl
push eax
add ebp, 1
push ebp
call fcn.005499b0
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.0x53486e
jmp dword [esi*4 + 0x536694]
or dword [ecx + 0x64], 0x1000
jmp case.default.0x53486e
mov dword [ecx + 0x70], 1
cmp edi, 9
mov esi, dword [esp + 0x10]
jge 0x5362c1
mov edi, dword [esp + 0x18]
add esi, 1
jmp 0x53238f
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 0x535169
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.0x5348ee.34
movzx ecx, byte [ecx + 0x5366e4]
jmp dword [ecx*4 + 0x5366ac]
mov dword [esp + 0x38], edx
mov dword [edi + 0x7c], edx
add esi, edx
jmp 0x5354cd
cmp byte [esi + 1], 0x3f
mov ebx, esi
mov dword [esp + 0x34], 0x87
mov dword [esp + 0x94], ebx
jne 0x534952
cmp byte [esi + 2], 0x43
jne 0x534952
mov al, byte [esi + 3]
cmp al, 0x30
mov ecx, 3
mov dword [esp + 0x48], ecx
jb 0x534941
cmp al, 0x39
ja 0x53493d
add ecx, edx
mov al, byte [ecx + esi]
cmp al, 0x30
jae 0x534930
mov dword [esp + 0x48], ecx
cmp byte [ecx + esi], 0x29
jne 0x534952
lea ebx, [ecx + esi + 1]
mov dword [esp + 0x94], ebx
cmp byte [ebx + 1], 0x3f
jne 0x53497d
mov al, byte [ebx + 2]
cmp al, 0x3d
je 0x534972
cmp al, 0x21
je 0x534972
cmp al, 0x3c
jne 0x53497d
mov al, byte [ebx + 3]
cmp al, 0x3d
je 0x534972
cmp al, 0x21
jne 0x53497d
mov dword [edi + 0x80], edx
jmp 0x5354d9
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 0x5349c5
cmp byte [esi + 1], 0x26
jne 0x5349c5
add esi, 2
mov dword [esp + 0x10], esi
mov byte [ebp + 3], 0x8f
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
jmp 0x5349db
cmp al, 0x3c
jne 0x534aa1
mov dword [esp + 0x24], 0x3e
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x5349e9
cmp al, 0x39
jbe 0x5362f5
mov edx, dword [edi + 0xc]
movzx eax, al
test byte [eax + edx], 0x10
je 0x536304
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 0x534a21
mov eax, edx
add esi, 1
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x534a11
mov eax, esi
sub eax, ebx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x20], eax
je 0x534a38
mov dword [esp + 0x44], 5
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x534a51
mov dl, byte [esi]
add esi, 1
cmp dl, al
mov dword [esp + 0x10], esi
jne 0x536313
mov al, byte [esi]
add esi, 1
cmp al, 0x29
mov dword [esp + 0x10], esi
jne 0x536313
cmp dword [esp + 0x4c], 0
jne 0x5354d9
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x534b58
test ecx, ecx
jle 0x536325
test eax, eax
je 0x534b27
cmp eax, 0x2d
jne 0x534b24
mov edx, dword [edi + 0x40]
sub edx, ecx
add edx, 1
mov ecx, edx
jmp 0x534b27
cmp al, 0x27
jne 0x534ab2
mov dword [esp + 0x24], 0x27
jmp 0x5349d5
xor ebx, ebx
cmp al, 0x2d
mov dword [esp + 0x24], ebx
je 0x534ad6
cmp al, 0x2b
je 0x534ad6
cmp al, 0x30
jb 0x5349e9
cmp al, 0x39
ja 0x5349db
mov dword [esp + 0x2c], ebx
jmp 0x534aeb
movzx eax, al
add esi, edx
cmp eax, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], esi
jl 0x5349db
mov al, byte [esi]
cmp al, 0x30
jb 0x534a51
cmp al, 0x39
ja 0x534a51
cmp ecx, 0xccccccb
jg 0x5362d0
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 0x534af5
jmp 0x534a51
add ecx, dword [edi + 0x40]
test ecx, ecx
jle 0x536334
cmp ecx, dword [edi + 0x44]
jg 0x536334
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 0x5354d9
mov dword [edi + 0x4c], ecx
jmp 0x5354d9
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 0x534bc3
mov edi, dword [esp + 0x20]
test edi, edi
mov eax, dword [esp + 0x28]
lea ecx, [ebx + 2]
je 0x534bc3
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x534b9b
test dl, dl
je 0x534bc3
add eax, 1
add ecx, 1
sub edi, 1
jne 0x534b84
jmp 0x534bc3
movzx ecx, byte [ecx]
movzx edx, byte [eax]
sub edx, ecx
je 0x534bc3
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 0x534b75
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
cmp ecx, edi
jge 0x534cb0
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 0x534bfc
mov dword [edx + 0x4c], eax
cmp ecx, edi
jge 0x534ca7
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 0x534c47
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x534c3d
test dl, dl
je 0x534c47
add eax, 1
add ecx, 1
sub esi, 1
jne 0x534c26
jmp 0x534c47
movzx ecx, byte [ecx]
movzx eax, byte [eax]
sub eax, ecx
jne 0x534c67
cmp byte [ebx + edi + 2], 0
jne 0x534c67
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 0x534c12
mov eax, dword [esp + 0x2c]
cmp eax, 1
mov dword [esp + 0x80], ebx
jle 0x534ca7
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 0x5354d9
mov eax, dword [esp + 0x58]
jmp 0x534d22
cmp dword [esp + 0x24], 0
jne 0x535398
mov ebx, dword [esp + 0x28]
cmp byte [ebx], 0x52
jne 0x534d3a
mov edi, dword [esp + 0x20]
mov edx, 1
xor eax, eax
cmp edi, edx
mov dword [esp + 0x48], edx
jle 0x534d19
jmp 0x534ce0
mov cl, byte [ebx + edx]
cmp cl, 0x30
jb 0x536334
cmp cl, 0x39
ja 0x536334
cmp eax, 0xccccccb
jg 0x536343
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 0x534ce0
test eax, eax
jne 0x534d1e
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 0x5354d9
mov edi, 6
cmp dword [esp + 0x20], edi
jne 0x535398
mov eax, ebx
mov ecx, str.DEFINE
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x534d67
test dl, dl
je 0x534d75
add eax, 1
add ecx, 1
sub edi, 1
jne 0x534d50
jmp 0x534d75
movzx eax, byte [eax]
movzx ecx, byte [ecx]
sub eax, ecx
jne 0x535398
mov edi, dword [esp + 0x18]
mov byte [ebp + 3], 0x91
mov esi, dword [esp + 0x10]
mov dword [esp + 0x44], 1
jmp 0x5354d9
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x7d
add esi, edx
jmp 0x5354d5
add esi, edx
mov dword [esp + 0x10], esi
cmp byte [esi], 0x29
jne 0x534de4
mov al, byte [esi + 1]
cmp al, 0x2a
je 0x534de4
cmp al, 0x2b
je 0x534de4
cmp al, 0x3f
je 0x534de4
cmp al, 0x7b
jne 0x534dca
lea eax, [esi + 2]
call fcn.0052f1a0
test eax, eax
jne 0x534de4
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 0x53238f
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x7e
jmp 0x5354d9
mov cl, byte [esi + 1]
cmp cl, 0x21
je 0x534f15
cmp cl, 0x3d
je 0x534f02
mov ebx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + ebx], 0x10
je 0x536352
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 0x534e3f
cmp cl, 0x39
jbe 0x536381
mov ebx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + ebx], 0x10
je 0x534e5f
mov edi, ebx
lea ecx, [ecx]
add esi, edx
mov dword [esp + 0x10], esi
movzx ecx, byte [esi]
test byte [ecx + edi], 0x10
jne 0x534e50
mov ebp, esi
sub ebp, dword [esp + 0x28]
cmp dword [esp + 0x4c], 0
je 0x5350f8
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x40]
add edx, 1
cmp byte [esi], al
mov dword [esp + 0x2c], edx
jne 0x536390
mov edx, dword [ecx + 0x30]
cmp edx, 0x2710
jge 0x53639f
lea eax, [ebp + 3]
cmp eax, dword [ecx + 0x34]
jle 0x534ea9
cmp ebp, 0x20
mov dword [ecx + 0x34], eax
jg 0x5363ae
test edx, edx
mov ebx, dword [ecx + 0x28]
mov dword [esp + 0x48], 0
jle 0x535061
lea esp, [esp]
cmp ebp, dword [ebx + 4]
jne 0x535039
test ebp, ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx]
mov edi, ebp
je 0x535015
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x53500b
test dl, dl
je 0x535015
add eax, 1
add ecx, 1
sub edi, 1
jne 0x534ee0
jmp 0x535015
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x7f
add esi, 2
jmp 0x5354d5
add dword [edi + 0x5c], edx
mov dword [esp + 0x34], 0x80
add esi, 2
jmp 0x5354d5
mov dword [esp + 0x34], 0x81
add esi, edx
jmp 0x5354d5
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 0x534f7a
lea ecx, [ecx]
cmp al, 0x39
ja 0x534f7a
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 0x534f60
cmp byte [esi], 0x29
jne 0x536363
cmp ecx, 0xff
jg 0x536372
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 0x53238f
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x3d
je 0x534ff6
cmp al, 0x3e
je 0x534ff6
cmp al, 0x3c
je case.0x5348ee.39
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x29
jmp 0x5364fb
xor ecx, ecx
cmp al, 0x3e
sete cl
mov dword [esp + 0x38], ecx
mov ecx, 0x29
jmp 0x53587d
movzx edx, byte [ecx]
movzx eax, byte [eax]
sub eax, edx
jne 0x535039
mov eax, dword [esp + 0x2c]
cmp dword [ebx + 8], eax
je 0x535061
test dword [esp + 0x50], 0x80000
je 0x5363bd
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x78], 1
jmp 0x535046
mov edx, dword [esp + 0x2c]
cmp dword [ebx + 8], edx
je 0x5363cc
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 0x534ec0
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x30]
cmp dword [esp + 0x48], ecx
jl 0x5350f8
mov eax, dword [edi + 0x38]
cmp ecx, eax
jl 0x5350c2
lea ebx, [eax + eax]
lea edx, [ebx + ebx*2]
add edx, edx
add edx, edx
push edx
call dword [0x596f0c]
mov esi, eax
test esi, esi
je 0x5363db
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.005499b0
add esp, 0xc
cmp dword [edi + 0x38], 0x14
jle 0x5350bc
mov edx, dword [edi + 0x28]
push edx
call dword [0x596f10]
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 0x5354d9
mov ecx, 0x29
mov dword [esp + 0x38], edx
jmp 0x53587d
add esi, edx
xor ebx, ebx
mov dword [esp + 0x10], esi
cmp byte [esi], 0x29
je 0x535a47
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x1d
jmp 0x5364fb
mov ecx, 0x29
jmp 0x535317
test edx, 0x1000
je 0x5350ff
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x34], 0x83
jmp 0x5354d9
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.0052f220
cmp dword [edi], 0
mov esi, eax
jne 0x5364f7
xor edx, edx
cmp esi, edx
jne 0x535208
cmp dword [esp + 0x40], edx
mov eax, dword [esp + 0xc4]
je 0x5351ef
cmp eax, 0x7f
jbe 0x5351ef
lea edx, [esp + 0x100]
push edx
push eax
call fcn.00547050
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov ecx, eax
jmp 0x53256b
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov byte [esp + 0x100], al
mov ecx, 1
jmp 0x53256b
cmp esi, 0x1a
jne 0x535248
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x535230
cmp byte [esi + 2], 0x45
jne 0x535230
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
add esi, 2
add esi, 1
jmp 0x53238f
mov edi, dword [esp + 0x18]
mov dword [esp + 0x74], 1
mov ebp, dword [esp + 0x14]
add esi, 1
jmp 0x53238f
cmp esi, 0x19
je 0x5337a6
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x535269
lea ecx, [esi - 6]
cmp ecx, 0x10
ja 0x535269
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 0x53582a
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 0x5352ec
cmp eax, 0x2d
je 0x5352ec
cmp eax, 0x30
jb 0x5352df
cmp eax, 0x39
jbe 0x5352ec
mov dword [esp + 0x38], 1
jmp 0x535874
mov al, byte [esi + 2]
cmp al, 0x30
lea edx, [esi + 2]
jb 0x535304
cmp al, 0x39
ja 0x535304
mov al, byte [edx + 1]
add edx, 1
cmp al, 0x30
jae 0x5352f6
cmp byte [edx], cl
jne 0x5363ea
mov ebp, dword [esp + 0x14]
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx edx, al
cmp edx, 0x2b
jne 0x5353a7
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x5363f9
cmp al, 0x39
ja 0x5363f9
mov al, byte [esi]
xor ebx, ebx
cmp al, 0x30
jb 0x53536d
cmp al, 0x39
ja 0x53536d
cmp ebx, 0xccccccb
jg 0x536456
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 0x535346
cmp byte [esi], cl
jne 0x536480
cmp edx, 0x2d
jne 0x535811
test ebx, ebx
je 0x53648f
mov ecx, dword [edi + 0x40]
sub ecx, ebx
add ecx, 1
mov ebx, ecx
test ebx, ebx
jg 0x535a47
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0xf
jmp 0x5364fb
cmp edx, 0x2d
jne 0x53533e
mov bl, byte [esi + 1]
cmp bl, 0x30
jb case.0x5348ee.34
cmp bl, 0x39
ja case.0x5348ee.34
add esi, 1
mov dword [esp + 0x10], esi
jmp 0x53533e
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 0x53544f
cmp al, 0x3a
je 0x535447
movzx eax, al
add esi, 1
sub eax, 0x2d
cmp eax, 0x4b
mov dword [esp + 0x10], esi
ja case.0x535406.46
movzx edx, byte [eax + 0x536764]
jmp dword [edx*4 + 0x536740]
lea ecx, [esp + 0x2c]
jmp 0x535441
or dword [ecx], 0x80000
or dword [ebx + 0x64], 0x400
jmp 0x535441
or dword [ecx], 1
jmp 0x535441
or dword [ecx], 2
jmp 0x535441
or dword [ecx], 4
jmp 0x535441
or dword [ecx], 8
jmp 0x535441
or dword [ecx], 0x200
jmp 0x535441
or dword [ecx], 0x40
mov al, byte [esi]
cmp al, 0x29
jne 0x5353e1
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 0x5354c6
mov eax, dword [ebx + 0x14]
add eax, 3
cmp ebp, eax
jne 0x535480
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x53547b
cmp dword [eax], 6
jne 0x535480
mov dword [ebx + 0x60], edx
jmp 0x5354a5
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 0x53238f
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 0x53641a
mov ecx, dword [esp + 0x34]
lea edx, [ecx - 0x7d]
cmp edx, 3
ja 0x53550c
xor edx, edx
cmp dword [edi + 0x80], edx
je 0x53550e
mov dword [esp + 0x20], edx
mov dword [edi + 0x80], edx
jmp 0x53551c
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 0x535548
cmp ecx, 0x80
je 0x535548
xor eax, eax
jmp 0x53554d
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.005367b0
test eax, eax
je 0x5364f7
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
or eax, 0xffffffff
add dword [edi + 0x58], eax
cmp ebx, 0x81
jne 0x535673
cmp dword [edi + 0x40], esi
mov ebp, dword [esp + 0x14]
ja 0x5355f4
mov byte [ebp], 0x82
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0x10]
cmp byte [esi], 0x29
jne 0x536447
cmp dword [esp + 0x4c], 0
je 0x5356fe
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 0x536258
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 0x53238f
cmp ebx, 0x7d
jl 0x535683
cmp ebx, 0x80
jg 0x535683
add dword [edi + 0x5c], eax
cmp ebx, 0x87
mov ebp, dword [esp + 0x14]
jne 0x5355f4
cmp dword [esp + 0x4c], 0
jne 0x5355f4
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 0x5356a2
cmp byte [ebp + 3], 0x91
jne 0x5356d4
cmp ecx, 1
jg 0x536429
mov dword [esp + 0x34], 0x91
mov ebx, dword [esp + 0x34]
jmp 0x5355f4
cmp ecx, 2
jg 0x536438
cmp ecx, 1
jne 0x5355f4
or edx, 0xffffffff
or ecx, edx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb8], ecx
jmp 0x535602
cmp ebx, 0x91
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
je 0x53523c
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 0x5357e3
cmp eax, 0xfffffffe
jne 0x53579a
test ecx, ecx
jl 0x535785
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 0x5357c0
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x84], 0xffffffff
jmp 0x5357c0
test ecx, ecx
jl 0x5357c0
test edx, edx
jge 0x5357c8
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 0x53523c
mov eax, dword [esp + 0xbc]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x78], eax
mov dword [esp + 0x64], edx
add esi, 1
jmp 0x53238f
cmp dword [esp + 0x34], 0x7d
jne 0x53523c
test edx, edx
jl 0x53523c
mov ecx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x64], edx
add esi, 1
jmp 0x53238f
cmp edx, 0x2b
jne 0x535a47
test ebx, ebx
je 0x53649b
add ebx, dword [edi + 0x40]
jmp 0x535a47
cmp esi, 0x1c
jne 0x535ce4
mov esi, dword [esp + 0x10]
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x53584a
cmp al, 0x27
je 0x53584a
cmp al, 0x7b
jne 0x5364a7
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 0x535867
mov ecx, 0x3e
jmp 0x535874
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 0x535897
cmp al, 0x39
jbe 0x5364b1
movzx edx, al
mov eax, dword [edi + 0xc]
test byte [edx + eax], 0x10
je 0x5358b3
add esi, 1
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x5358a3
mov edx, dword [esp + 0x4c]
mov eax, esi
sub eax, ebx
test edx, edx
mov dword [esp + 0x20], eax
je 0x5359a1
xor ebx, ebx
test eax, eax
je 0x5364bd
cmp byte [esi], cl
jne 0x5364c9
cmp eax, 0x20
jg 0x5364d5
cmp dword [esp + 0x38], ebx
jne 0x5358ec
add dword [edi + 0x54], 1
add dword [edx], 8
cmp dword [edi + 0x7c], 0
mov eax, dword [edx]
je 0x535901
add eax, 0xc
mov dword [edx], eax
jmp 0x535a3c
cmp dword [edi + 0x30], 0
mov eax, dword [edi + 0x28]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], 0
jle 0x535a3c
lea ebx, [ebx]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx + 4]
jne 0x535987
mov eax, dword [esp + 0x28]
mov esi, ecx
mov ecx, edx
mov ecx, dword [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x53594e
test dl, dl
je 0x535958
add eax, 1
add ecx, 1
sub esi, 1
jne 0x535937
jmp 0x535958
movzx edx, byte [ecx]
movzx eax, byte [eax]
sub eax, edx
jne 0x535987
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 8]
jne 0x535a47
mov eax, dword [edi + 0x24]
test eax, eax
je 0x535987
movzx ecx, word [eax + 4]
cmp ecx, ebx
je 0x535981
mov eax, dword [eax]
test eax, eax
jne 0x535971
jmp 0x535987
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 0x535920
jmp 0x535a3c
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 0x535a1d
mov ebx, edx
mov edi, dword [esp + 0x20]
test edi, edi
mov eax, dword [esp + 0x28]
lea ecx, [ebx + 2]
je 0x5359f4
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5359ea
test dl, dl
je 0x5359f4
add eax, 1
add ecx, 1
sub edi, 1
jne 0x5359d3
jmp 0x5359f4
movzx ecx, byte [ecx]
movzx eax, byte [eax]
sub eax, ecx
jne 0x5359ff
mov edx, dword [esp + 0x20]
cmp byte [ebx + edx + 2], 0
je 0x535a16
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 0x5359c4
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x48], eax
jge 0x535398
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 0x535b7a
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 0x535b29
test ebx, ebx
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov byte [ecx], 0
je 0x535a89
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x14]
push ebx
push edx
push eax
call fcn.00530050
mov dword [esp + 0x24], eax
test eax, eax
jne 0x535aee
cmp ebx, dword [esi + 0x44]
jg 0x5364e1
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 0x535ac9
call fcn.0052f120
test eax, eax
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
jne 0x5364f7
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 0x535b25
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x535b29
cmp dword [esp + 0x174], ecx
jg 0x535b29
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.005306c0
test eax, eax
jne 0x5364ed
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 0x53610d
mov edi, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x3c], 0xffffffff
mov ebp, ecx
add esi, 1
jmp 0x53238f
cmp dword [esp + 0x4c], 0
jne 0x535cf8
cmp dword [edi + 0x78], 0
je 0x535cf8
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 0x535cf8
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 0x535bf1
lea ebx, [ebx]
test al, al
je 0x535bfb
mov al, byte [ecx + 1]
add ecx, 1
add edx, 1
cmp al, byte [edx]
je 0x535be0
movzx edx, byte [edx]
movzx eax, byte [ecx]
sub eax, edx
jne 0x535c0f
mov eax, dword [edi + 0x34]
add dword [esp + 0x2c], 1
add dword [esp + 0x24], eax
add esi, 1
cmp esi, dword [edi + 0x30]
jl 0x535bc2
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
mov dword [esp + 0x48], esi
jle 0x535cf8
cmp dword [esp + 0x3c], 0xfffffffe
jne 0x535c2f
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 0x53610f
mov edx, dword [esp + 0x80]
lea esp, [esp]
movzx ecx, byte [edx + 1]
mov ch, byte [edx]
mov eax, 1
cmp ecx, 0x20
jge 0x535ca2
shl eax, cl
or dword [edi + 0x50], eax
cmp ecx, dword [edi + 0x4c]
jle 0x535cad
mov dword [edi + 0x4c], ecx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x535cca
movzx ebx, word [eax + 4]
cmp ebx, ecx
je 0x535cc4
mov eax, dword [eax]
test eax, eax
jne 0x535cb4
jmp 0x535cca
mov word [eax + 6], 1
add edx, dword [edi + 0x34]
cmp edx, esi
jb 0x535c90
mov esi, dword [esp + 0x10]
mov dword [esp + 0x80], edx
add esi, 1
jmp 0x53238f
cmp esi, edx
jge 0x535d8c
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
neg esi
mov ebx, esi
cmp dword [esp + 0x3c], 0xfffffffe
jne 0x535d07
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 0x535d46
mov ecx, ebx
shl eax, cl
or dword [edi + 0x50], eax
cmp ebx, dword [edi + 0x4c]
jle 0x535d51
mov dword [edi + 0x4c], ebx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x53610f
lea esp, [esp]
movzx ecx, word [eax + 4]
cmp ecx, ebx
je 0x535d7a
mov eax, dword [eax]
test eax, eax
jne 0x535d60
mov esi, dword [esp + 0x10]
add esi, 1
jmp 0x53238f
mov word [eax + 6], 1
mov esi, dword [esp + 0x10]
add esi, 1
jmp 0x53238f
cmp esi, 0xf
je 0x535e33
cmp esi, 0x10
je 0x535e33
cmp esi, 5
je 0x535dad
cmp esi, 4
je 0x535dad
cmp esi, 1
jne 0x535dbf
mov edi, dword [esp + 0x18]
cmp dword [edi + 0x48], edx
jne 0x535dc3
mov dword [edi + 0x48], 1
jmp 0x535dc3
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
lea eax, [esi - 0x1d]
cmp eax, 5
ja 0x535def
mov edx, dword [esp + 0x10]
mov esi, dword [eax*4 + 0x596e80]
add edx, 1
sub esi, 1
mov dword [esp + 0x8c], edx
add esi, 1
jmp 0x53238f
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 0x535e1b
cmp esi, 0xe
lea eax, [ecx - 3]
je 0x535e1d
mov eax, esi
mov byte [ebp], al
mov esi, dword [esp + 0x10]
add ebp, 1
mov dword [esp + 0x14], ebp
add esi, 1
jmp 0x53238f
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.0052f9a0
test eax, eax
je 0x5364f7
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 0x53238f
movzx eax, byte [esp + 0x101]
movzx edx, byte [esp + 0x102]
and eax, 0x3f
test bl, 0x10
jne 0x535ed9
and ebx, 0xf
shl ebx, 6
or eax, ebx
jmp 0x535f5c
and edx, 0x3f
test bl, 8
jne 0x535efb
and ebx, 7
shl ebx, 6
or eax, ebx
shl eax, 6
or eax, edx
movzx edx, byte [esp + 0x103]
jmp 0x535f5c
test bl, 4
jne 0x535f27
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 0x535f5c
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 + 0x575948]
shl eax, 7
and ebx, 0x8000007f
jns 0x535f88
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx edx, word [eax*2 + 0x577b48]
movzx eax, byte [edx*8 + 0x5742cb]
test eax, eax
je 0x535fdb
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 0x53610f
mov esi, dword [esp + 0x10]
or eax, 0xffffffff
mov dword [esp + 0x84], eax
mov dword [esp + 0x3c], eax
add esi, 1
jmp 0x53238f
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 0x536018
jmp 0x536000
mov dl, byte [esp + eax + 0x100]
mov byte [ebp], dl
add eax, 1
add ebp, 1
cmp eax, ecx
jb 0x536000
mov dword [esp + 0x14], ebp
mov dl, byte [esp + 0x100]
cmp dl, 0xd
je 0x536029
cmp dl, 0xa
jne 0x536030
or dword [edi + 0x64], 0x800
mov eax, dword [esp + 0x3c]
cmp eax, 0xfffffffe
jne 0x5360b7
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 0x53607e
cmp dword [esp + 0xa4], 0
je 0x53607e
mov esi, dword [esp + 0x10]
or eax, 0xffffffff
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], eax
add esi, 1
jmp 0x53238f
cmp ecx, 1
mov eax, dword [esp + 0xa4]
movzx edx, dl
mov dword [esp + 0x88], edx
mov dword [esp + 0x3c], eax
je 0x53610f
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 0x53238f
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 0x5360eb
cmp dword [esp + 0xa4], 0
jne 0x536113
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 0x53238f
mov edi, esi
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add esi, 1
jmp 0x53238f
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x34
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x14
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x34
jmp 0x5364fb
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 0x5361bf
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 0x53612e
sub eax, edx
add eax, ebp
mov dword [ecx], eax
mov eax, 1
jmp 0x536506
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 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1f
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x5364fb
mov edx, edi
mov dword [edx], 0x47
jmp 0x5364f7
mov eax, dword [esp + 0x1c]
mov dword [eax], 7
jmp 0x5364fb
mov ecx, esi
mov dword [ecx], 0x53
jmp 0x5364f7
mov eax, dword [esp + 0x1c]
mov dword [eax], 8
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 6
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 9
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x14
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x14
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x4b
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3c
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3b
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x42
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3b
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3c
jmp 0x5364fb
mov al, byte [esi]
cmp al, 0x30
jb 0x5362e6
cmp al, 0x39
ja 0x5362e6
add esi, edx
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x5362d6
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x3d
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x54
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1c
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
sub esi, 1
mov dword [ecx], 0x1a
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x23
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xf
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3d
jmp 0x5364fb
add esi, edx
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x18
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x27
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x26
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x54
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x31
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x30
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x2b
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x41
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x15
jmp 0x5364f7
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x39
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3f
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0xc
sub esi, 1
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x52
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x36
jmp 0x5364f7
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x1b
jmp 0x5364f7
mov edx, dword [esp + 0x1c]
mov dword [edx], 0xe
jmp 0x5364fb
mov al, byte [esi]
cmp al, 0x30
jb 0x536471
lea esp, [esp]
cmp al, 0x39
ja 0x536471
add esi, 1
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x536460
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x3d
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x1d
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3a
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3a
jmp 0x5364fb
mov eax, edi
mov dword [eax], 0x45
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x54
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0x3e
jmp 0x5364fb
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x2a
jmp 0x5364fb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 0x30
jmp 0x5364fb
mov edx, dword [esp + 0x1c]
mov dword [edx], 0xf
jmp 0x5364f7
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.0054962d
add esp, 0x144
ret 0x28