Function at 0x5524c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x5524f0
test dword [0x87ed4c], 0xffffffff
jne 0x5533e0
call fcn.007663a0
jmp fcn.005524c0
push edi
push esi
push ebp
push ebx
sub esp, 0x98
mov ebp, ecx
mov edi, eax
mov ebx, dword [edi]
movzx esi, byte [edi + 0x1ba]
test dword [ebx + 0xc], 0x4000000
jne 0x55251b
add esp, 0x98
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, edi
mov dword [esp + 0x84], edx
call fcn.004395a0
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x44]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x24], eax
test eax, eax
je 0x5533c8
mov eax, dword [ebx + 4]
mov dword [esp + 0x4c], 0
test eax, eax
jle 0x5533c1
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x5c], ebp
mov ebp, eax
mov eax, edx
shl eax, 4
cmp edi, dword [eax + ecx + 0xc]
je 0x5533a9
inc edx
cmp edx, ebp
jl 0x55256e
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x4c]
shl eax, 4
mov ecx, dword [ecx + eax]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x552a96
mov dword [esp + 0x78], eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x84], edx
mov dword [esp + 0x5c], ebp
mov ebp, ecx
movzx edx, byte [edi + 0x1ba]
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], eax
test edx, edx
je 0x552769
mov eax, dword [ebp + 8]
mov edx, eax
mov ecx, edx
test eax, eax
je 0x5531e6
movsx esi, byte [eax]
test esi, esi
je 0x552601
inc edx
movsx esi, byte [edx]
test esi, esi
jne 0x5525f9
sub edx, eax
and edx, 0x3fffffff
mov eax, dword [esp + 0x88]
xor esi, esi
mov eax, dword [eax + 4]
test eax, eax
jle 0x55277f
xor ebx, ebx
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x88]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x54], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x94], eax
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x70], edi
mov edi, ecx
xor edi, 1
jmp 0x552664
mov edi, ecx
shl edi, 4
test ebx, ebx
je 0x5526cc
mov esi, dword [edi + ebp]
lea eax, [ebx + 1]
movzx edx, byte [ebx]
test edx, edx
je 0x5531d0
movzx ebx, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx ebx, byte [ebx + 0x789b60]
cmp edx, ebx
jne 0x5531c5
movzx edx, byte [eax]
inc esi
inc eax
test edx, edx
jne 0x55267c
mov ebx, dword [esp + 0x68]
movzx eax, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
cmp eax, edx
je 0x5526cc
inc ecx
cmp ecx, dword [esp + 0x94]
jge 0x5530f2
cmp ecx, 2
jl 0x55265b
jmp 0x552662
mov edx, dword [edi + ebp + 0xc]
mov esi, dword [edx + 0x10]
test esi, esi
je 0x552731
mov edi, dword [esp + 0x58]
mov dword [esp + 0x60], edi
xor eax, eax
mov edi, dword [esp + 0x54]
test edi, edi
jle 0x552714
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x60]
lea ebx, [eax*8]
xor ebx, eax
movzx eax, byte [ecx]
inc ecx
movzx eax, byte [eax + 0x789b60]
xor eax, ebx
dec edi
test edi, edi
jg 0x5526f1
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x68]
mov edi, dword [edx + 4]
xor edx, edx
div edi
mov eax, dword [esi + edx*8 + 4]
mov edx, dword [esi + edx*8]
mov esi, 1
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x54]
jmp 0x552744
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 8]
mov esi, 1
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x54]
test edx, edx
mov ebx, edx
cmovne ebx, esi
dec edx
test ebx, ebx
je 0x5531ae
test eax, eax
je 0x5531ae
cmp ecx, dword [eax + 0x10]
je 0x553106
mov eax, dword [eax]
jmp 0x552744
mov esi, dword [esp + 0x68]
mov ecx, dword [ebp + 8]
mov dword [esp + 0xc], esi
mov eax, edi
xor edx, edx
call fcn.004253a0
mov esi, eax
test esi, esi
je 0x552a57
lea eax, [esp + 0x74]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x6c]
mov edx, esi
mov dword [esp + 0x10], eax
mov eax, edi
mov ecx, ebp
call fcn.00556320
test eax, eax
jne 0x552a57
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x8c], eax
test eax, eax
je 0x5532ab
xor eax, eax
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x3c], eax
jle 0x5528bb
xor ebx, ebx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x70], edi
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x84]
mov ecx, dword [edx + ebx*4]
cmp ecx, dword [ebp + 8]
jne 0x5527fb
mov dword [edx + ebx*4], 0xffffffff
mov edx, dword [esp + 0x88]
cmp dword [edx + 0xf8], 0
je 0x55289c
mov eax, dword [esp + 0x74]
test eax, eax
je 0x55281f
mov eax, dword [eax + 8]
mov eax, dword [eax + ebx*4]
jmp 0x552826
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 8]
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
lea esi, [eax + eax*2]
mov eax, dword [esp + 0x70]
mov ebp, dword [edi + 0x10]
mov ebp, dword [ebp + esi*8]
mov esi, dword [edi + 4]
mov edi, dword [eax]
mov edx, dword [edi + 8]
mov edx, dword [edx + ecx]
mov dword [esp + 0x80], edx
push dword [eax + 0x1fc]
push edx
push ebp
push esi
push 0x14
push dword [edi + 0xfc]
call dword [edi + 0xf8]
add esp, 0x18
cmp eax, 1
je 0x55325c
cmp eax, 2
je 0x553252
test eax, eax
je 0x55289a
push str.authorizer_malfunction
push dword [esp + 0x74]
call fcn.005860f0
add esp, 8
mov eax, dword [esp + 0x70]
mov dword [eax + 4], 1
xor eax, eax
mov edx, dword [esp + 0x90]
inc ebx
cmp ebx, dword [edx + 0x14]
jl 0x5527de
mov esi, dword [esp + 0x7c]
mov ebp, edx
mov edi, dword [esp + 0x70]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 4]
mov ebx, dword [edi + 0x1a8]
mov dword [esp + 0x40], eax
test ebx, ebx
cmove ebx, edi
mov ecx, dword [ebx + 0x190]
mov eax, dword [ebx + 0x194]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
test ecx, ecx
jle 0x552931
xor eax, eax
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x40]
mov edx, eax
shl edx, 4
cmp ebp, dword [esi + edx]
jne 0x552919
cmp edi, dword [esi + edx + 4]
je 0x5531ed
inc eax
cmp eax, ecx
jl 0x552905
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x90]
mov eax, dword [ebx]
mov edx, dword [esp + 0x48]
shl ecx, 4
add ecx, 0x10
mov dword [esp + 0x30], eax
call fcn.00490370
mov dword [esp + 0x34], eax
cmp dword [esp + 0x34], 0
je 0x553226
mov ecx, dword [ebx + 0x190]
mov dword [ebx + 0x194], eax
mov edx, ecx
shl edx, 4
inc ecx
mov dword [ebx + 0x190], ecx
mov ecx, dword [esp + 0x4c]
mov dword [edx + eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [edx + eax + 4], ecx
mov ecx, dword [esp + 0x44]
mov byte [edx + eax + 8], 0
mov dword [edx + eax + 0xc], ecx
inc dword [edi + 0x44]
cmp dword [esp + 0x5c], 0
je 0x5529cf
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], ebp
mov ecx, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x20], eax
mov eax, edi
call fcn.00554d30
cmp dword [esp + 0xb8], 0
je 0x552a18
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], ebp
mov ecx, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], eax
mov eax, edi
call fcn.00554d30
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x552a75
mov edx, dword [esp + 0x88]
cmp eax, dword [edx + 0xf0]
jb 0x55321c
cmp eax, dword [edx + 0xf4]
jae 0x55321c
mov esi, edx
mov edx, dword [esi + 0xec]
mov dword [eax], edx
dec dword [esi + 0xe4]
mov dword [esi + 0xec], eax
jmp 0x552a75
cmp dword [esp + 0x64], 0
je 0x552510
mov eax, dword [esp + 0x88]
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x552510
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x5525ca
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x5c]
mov eax, edx
mov dword [esp + 0x84], edx
call fcn.0055a840
mov edx, dword [esp + 0x84]
test eax, eax
je 0x5530e7
mov dword [esp + 0x84], edx
mov dword [esp + 0x5c], ebp
mov ebp, eax
mov eax, ebx
mov ebx, edi
mov edi, eax
movzx edx, byte [ebp + 0x18]
test edx, edx
jne 0x552ae6
cmp dword [ebx + 0x1a8], 0
jne 0x552ae6
movzx edx, byte [ebx + 0x158]
test edx, edx
je 0x5530dc
xor edx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
lea edx, [esp + 0x58]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x54]
mov eax, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x84]
mov ecx, ebp
call fcn.00556320
test eax, eax
je 0x552b2d
test esi, esi
je 0x552510
movzx edx, byte [edi + 0x1e]
test edx, edx
je 0x5530dc
jmp 0x552510
mov dword [esp + 0xc], 0
mov eax, edi
xor edx, edx
xor ecx, ecx
call fcn.005569f0
mov dword [esp + 0x50], eax
cmp dword [esp + 0x50], 0
je 0x5530a8
mov ecx, eax
lea eax, [ecx + 8]
mov edx, dword [ebp]
mov dword [esp + 0x48], eax
mov dword [eax + 0xc], edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
inc word [edx + 0x20]
mov edx, dword [ebx + 0x44]
mov dword [eax + 0x18], edx
inc dword [ebx + 0x44]
cmp dword [esp + 0xb8], 0
je 0x552bb7
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], ebp
mov eax, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], 0xffffffff
call fcn.005542d0
cmp dword [esp + 0x5c], 0
je 0x552bf4
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], ebp
mov eax, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], 1
call fcn.005542d0
mov edx, dword [esp + 0x48]
mov dword [edx + 4], 0
mov edx, dword [esp + 0x50]
movsx ecx, word [edx]
test ecx, ecx
jle 0x5530a1
xor eax, eax
mov dword [esp + 0x2c], ebp
mov ebp, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x48]
mov eax, dword [ebx]
test eax, eax
je 0x552c54
cmp eax, dword [edi + 0xf0]
jb 0x55339f
cmp eax, dword [edi + 0xf4]
jae 0x55339f
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x552c87
cmp eax, dword [edi + 0xf0]
jb 0x553395
cmp eax, dword [edi + 0xf4]
jae 0x553395
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
mov eax, dword [ebx + 8]
test eax, eax
je 0x552cba
cmp eax, dword [edi + 0xf0]
jb 0x55338b
cmp eax, dword [edi + 0xf4]
jae 0x55338b
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x552ced
cmp eax, dword [edi + 0xf0]
jb 0x553381
cmp eax, dword [edi + 0xf4]
jae 0x553381
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x552ebb
mov edx, dword [esi]
movzx ecx, word [esi + 0x20]
mov dword [esp + 0x4c], edx
dec ecx
mov word [esi + 0x20], cx
movzx edx, cx
test edx, edx
jg 0x552ebb
mov eax, dword [esi + 0x14]
test eax, eax
je 0x552d9e
mov dword [esp + 0x38], esi
xor esi, esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x48], ebx
mov ebx, eax
mov dword [esp + 0x88], edi
mov ebp, dword [ebx + 0x20]
mov edx, dword [ebx]
mov ecx, edx
test edx, edx
je 0x553310
movsx edi, byte [edx]
test edi, edi
je 0x552d52
inc ecx
movsx edi, byte [ecx]
test edi, edi
jne 0x552d4a
sub ecx, edx
and ecx, 0x3fffffff
mov eax, dword [ebx + 0x24]
add eax, 0x14
mov dword [esp + 0xc], 0
call fcn.004fbe50
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x1c]
mov edi, dword [ecx]
mov eax, edi
call fcn.004e33d8
mov eax, edi
mov edx, ebx
call fcn.004e33d8
mov ebx, ebp
test ebp, ebp
jne 0x552d34
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x88]
mov eax, esi
call fcn.004fb6c0
mov eax, esi
call fcn.004f3c60
mov eax, dword [esp + 0x4c]
mov edx, dword [esi + 4]
call fcn.004e33d8
mov eax, dword [esp + 0x4c]
mov edx, dword [esi + 0x28]
call fcn.004e33d8
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x552de5
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x30], edx
call fcn.004ce330
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
call fcn.004e33d8
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x552df5
mov eax, dword [esp + 0x4c]
call fcn.0044db10
mov eax, dword [esi + 0x34]
mov dword [esi + 0x34], 0
test eax, eax
je 0x552e3b
mov dword [esp + 0x88], edi
mov ecx, dword [eax]
mov edi, dword [eax + 0x10]
test ecx, ecx
je 0x552e24
mov edx, dword [ecx + 0x128]
mov dword [eax + 0x10], edx
mov dword [ecx + 0x128], eax
jmp 0x552e2e
mov dword [esi + 0x34], eax
mov dword [eax + 0x10], 0
mov eax, edi
test edi, edi
jne 0x552e0a
mov edi, dword [esp + 0x88]
mov edx, dword [esi + 0x3c]
test edx, edx
je 0x5532d2
mov ecx, dword [esi + 0x38]
mov eax, dword [esi]
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x5532cd
xor ecx, ecx
mov dword [esp + 0x48], ebx
mov ebx, ecx
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x34]
mov ecx, dword [edx + ebx*4]
test eax, eax
je 0x553301
test ecx, ecx
je 0x5532f6
cmp ecx, dword [eax + 0xf0]
jb 0x5532e2
cmp ecx, dword [eax + 0xf4]
jae 0x5532e2
mov edx, dword [eax + 0xec]
mov dword [ecx], edx
dec dword [eax + 0xe4]
mov dword [eax + 0xec], ecx
mov eax, dword [esi]
mov edx, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
inc ebx
cmp ebx, edi
jl 0x552e6a
jmp 0x5532c2
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x552ed4
mov eax, edi
mov edx, esi
call fcn.004ce330
mov eax, edi
mov edx, esi
call fcn.004e33d8
mov esi, dword [ebx + 0x1c]
test esi, esi
je 0x553019
movzx eax, word [esi + 2]
test eax, 0x2000
jne 0x553004
mov edx, dword [esi + 8]
mov eax, edi
call fcn.004cdfe0
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.004cdfe0
movzx eax, word [esi + 2]
mov edx, eax
and edx, 0x1000
cmp edx, 0x1000
je 0x552f20
test byte [esi + 0x22], 1
jne 0x55336e
mov edx, eax
and edx, 0x800
cmp edx, 0x800
je 0x553348
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x553004
mov edx, dword [ecx + 0xc]
cmp dword [ecx], 0
jle 0x552fe8
xor eax, eax
mov dword [esp + 0x40], esi
mov esi, edx
mov dword [esp + 0x3c], ebp
mov ebp, ecx
mov dword [esp + 0x48], ebx
mov ebx, eax
mov edx, dword [esi]
mov eax, edi
call fcn.004cdfe0
mov edx, dword [esi + 4]
test edx, edx
je 0x552f9b
cmp edx, dword [edi + 0xf0]
jb 0x55333c
cmp edx, dword [edi + 0xf4]
jae 0x55333c
mov eax, dword [edi + 0xec]
mov dword [edx], eax
dec dword [edi + 0xe4]
mov dword [edi + 0xec], edx
mov edx, dword [esi + 8]
test edx, edx
je 0x552fce
cmp edx, dword [edi + 0xf0]
jb 0x553330
cmp edx, dword [edi + 0xf4]
jae 0x553330
mov eax, dword [edi + 0xec]
mov dword [edx], eax
dec dword [edi + 0xe4]
mov dword [edi + 0xec], edx
inc ebx
add esi, 0x14
cmp ebx, dword [ebp]
jl 0x552f5f
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
mov ecx, ebp
mov ebp, dword [esp + 0x3c]
mov edx, dword [ecx + 0xc]
mov eax, edi
mov dword [esp + 0x44], ecx
call fcn.004e33d8
mov ecx, dword [esp + 0x44]
mov eax, edi
mov edx, ecx
call fcn.004e33d8
movzx eax, word [esi + 2]
and eax, 0x4000
cmp eax, 0x4000
je 0x553019
mov eax, edi
mov edx, esi
call fcn.004e33d8
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x553082
mov ecx, dword [esi + 4]
mov edx, dword [esi]
test ecx, ecx
jle 0x553072
xor eax, eax
mov dword [esp + 0x48], ebx
mov ebx, eax
mov eax, dword [edx + ebx*8]
test eax, eax
je 0x553069
cmp eax, dword [edi + 0xf0]
jb 0x553321
cmp eax, dword [edi + 0xf4]
jae 0x553321
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
mov ecx, dword [esi + 4]
mov edx, dword [esi]
inc ebx
cmp ebx, ecx
jl 0x553031
mov ebx, dword [esp + 0x48]
mov eax, edi
call fcn.004e33d8
mov eax, edi
mov edx, esi
call fcn.004e33d8
mov edx, dword [esp + 0x50]
inc ebp
add ebx, 0x38
movsx ecx, word [edx]
cmp ebp, ecx
jl 0x552c22
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
mov eax, edi
call fcn.004e33d8
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5530dc
cmp eax, dword [edi + 0xf0]
jb 0x553317
cmp eax, dword [edi + 0xf4]
jae 0x553317
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jne 0x552ac6
add esp, 0x98
pop ebx
pop ebp
pop esi
pop edi
ret
mov esi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x90]
mov edi, dword [esp + 0x70]
jmp 0x55277f
mov ebp, dword [eax + 0xc]
mov ebx, dword [esp + 0x58]
mov edi, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edx
xor edx, edx
jmp 0x55311d
inc ebp
inc ebx
test edi, edi
mov eax, edx
cmovg eax, esi
dec edi
test eax, eax
je 0x5531a0
movzx eax, byte [ebp]
test eax, eax
je 0x5531a0
movzx eax, byte [eax + 0x789b60]
movzx ecx, byte [ebx]
movzx ecx, byte [ecx + 0x789b60]
cmp eax, ecx
je 0x55311b
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
test edi, edi
js 0x553173
movzx edi, byte [ebp]
movzx ebp, byte [edi + 0x789b60]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0x789b60]
cmp ebx, ebp
jne 0x552765
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x68]
mov eax, dword [eax + 8]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x5526b7
mov esi, eax
mov ebp, dword [esp + 0x90]
mov edi, dword [esp + 0x70]
jmp 0x55277f
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
jmp 0x553152
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x68]
xor eax, eax
mov dword [esp + 0x7c], eax
jmp 0x5526b7
mov eax, ebx
mov ebx, dword [esp + 0x68]
jmp 0x5526b3
movzx eax, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
jmp 0x5526b3
xor edx, edx
jmp 0x552609
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x48]
movzx eax, byte [ebx + edx + 8]
mov dword [esp + 0x4c], ebp
mov ecx, 1
test eax, eax
cmovne eax, ecx
mov ebp, dword [esp + 0x90]
mov byte [ebx + edx + 8], al
jmp 0x552989
call fcn.004c69c4
jmp 0x552a75
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
call fcn.004e33d8
mov eax, dword [esp + 0x34]
mov edx, dword [ebx]
mov dword [ebx + 0x194], eax
mov dword [ebx + 0x190], 0
mov byte [edx + 0x1e], 1
jmp 0x552989
mov eax, 1
jmp 0x55289c
cmp dword [edi + 4], 2
jg 0x55327e
cmp dword [esp + 0x4c], 0
jne 0x55327e
push ebp
push esi
push str.access_to__s._s_is_prohibited
push dword [esp + 0x7c]
call fcn.005860f0
add esp, 0x10
jmp 0x55329b
push ebp
push esi
push dword [esp + 0x88]
push str.access_to__s._s._s_is_prohibited
push dword [esp + 0x80]
call fcn.005860f0
add esp, 0x14
mov eax, dword [esp + 0x70]
mov dword [eax + 4], 0x17
jmp 0x55289a
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x28], eax
lea edx, [esp + 0x28]
mov dword [esp + 0x8c], edx
jmp 0x5527bd
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x88]
call fcn.004e33d8
mov eax, dword [esp + 0x4c]
mov edx, esi
call fcn.004e33d8
jmp 0x552ebb
mov eax, ecx
call fcn.004c69c4
mov eax, dword [esi]
mov edx, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
jmp 0x552eb1
inc ebx
cmp ebx, edi
jl 0x552e6a
jmp 0x5532c2
test ecx, ecx
jne 0x5532e2
inc ebx
cmp ebx, edi
jl 0x552e6a
jmp 0x5532c2
mov ecx, esi
jmp 0x552d5a
call fcn.004c69c4
jmp 0x5530dc
call fcn.004c69c4
mov ecx, dword [esi + 4]
mov edx, dword [esi]
jmp 0x553069
mov eax, edx
call fcn.004c69c4
jmp 0x552fce
mov eax, edx
call fcn.004c69c4
jmp 0x552f9b
mov edx, dword [esi + 0x10]
test edx, edx
je 0x553004
mov eax, edi
mov dword [esp + 0x24], edx
call fcn.004ce330
mov edx, dword [esp + 0x24]
mov eax, edi
call fcn.004e33d8
jmp 0x553000
mov edx, dword [esi + 4]
mov eax, edi
call fcn.004e33d8
movzx eax, word [esi + 2]
jmp 0x552f20
call fcn.004c69c4
jmp 0x552ced
call fcn.004c69c4
jmp 0x552cba
call fcn.004c69c4
jmp 0x552c87
call fcn.004c69c4
jmp 0x552c54
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x84]
jmp 0x55259c
xor eax, eax
jmp 0x55259c
mov dword [esp + 0x4c], 0xfff0bdc0
mov eax, 0xff0bdc00
jmp 0x55259c
push edi
push esi
push ebp
push ebx
sub esp, 0x94
mov ebp, ecx
mov esi, eax
mov edi, dword [esi]
movzx ebx, byte [esi + 0x1ba]
test dword [edi + 0xc], 0x4000000
jne 0x55340b
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, esi
mov dword [esp + 0x80], edx
call fcn.004395a0
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x44]
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 8]
test eax, eax
je 0x5542b9
mov eax, dword [edi + 4]
mov dword [esp + 0x48], 0
test eax, eax
jle 0x5542b2
mov dword [esp + 0x6c], esi
mov dword [esp + 0x80], edx
mov dword [esp + 0x5c], ebp
mov edx, dword [esp + 0x48]
mov ebp, eax
mov esi, dword [esp + 0x24]
mov eax, edx
shl eax, 4
cmp esi, dword [eax + ecx + 0xc]
je 0x55429a
inc edx
cmp edx, ebp
jl 0x55345e
mov dword [esp + 0x48], edx
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x48]
shl eax, 4
mov ecx, dword [ecx + eax]
mov dword [esp + 0x64], ecx
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x553988
mov dword [esp + 0x74], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x80], edx
mov dword [esp + 0x5c], ebp
mov ebp, ecx
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], eax
movzx edx, byte [esi + 0x1ba]
test edx, edx
je 0x553649
mov eax, dword [ebp + 8]
mov edx, eax
mov dword [esp + 0x58], edx
test eax, eax
je 0x5540ce
movsx ebx, byte [eax]
test ebx, ebx
je 0x5534ec
inc edx
movsx ebx, byte [edx]
test ebx, ebx
jne 0x5534e4
sub edx, eax
and edx, 0x3fffffff
mov eax, dword [edi + 4]
xor ebx, ebx
test eax, eax
jle 0x55365f
mov dword [esp + 0x50], 0
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x84], edi
mov dword [esp + 0x6c], esi
mov ebx, ecx
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x64]
mov edi, esi
xor edi, 1
jmp 0x553544
mov edi, esi
shl edi, 4
test ebp, ebp
je 0x5535ad
mov ecx, dword [edi + ebx]
lea eax, [ebp + 1]
movzx edx, byte [ebp]
test edx, edx
je 0x5540b8
movzx ebp, byte [ecx]
movzx edx, byte [edx + 0x789b60]
movzx ebp, byte [ebp + 0x789b60]
cmp edx, ebp
jne 0x5540ad
inc ecx
movzx edx, byte [eax]
inc eax
test edx, edx
jne 0x55355d
mov ebp, dword [esp + 0x64]
movzx eax, byte [ecx]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
cmp eax, edx
je 0x5535ad
inc esi
cmp esi, dword [esp + 0x90]
jge 0x553fdc
cmp esi, 2
jl 0x55353b
jmp 0x553542
mov edx, dword [edi + ebx + 0xc]
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x553612
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
mov edi, dword [esp + 0x4c]
xor eax, eax
test edi, edi
jle 0x5535f6
mov dword [esp + 0x50], esi
mov ebp, dword [esp + 0x54]
lea esi, [eax*8]
xor esi, eax
movzx eax, byte [ebp]
movzx eax, byte [eax + 0x789b60]
xor eax, esi
inc ebp
dec edi
test edi, edi
jg 0x5535d2
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x64]
mov edi, dword [edx + 4]
xor edx, edx
div edi
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + edx*8]
mov dword [esp + 0x50], esi
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
jmp 0x553624
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
mov dword [esp + 0x50], esi
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
xor edx, edx
test ecx, ecx
setne dl
dec ecx
test edx, edx
je 0x554096
test eax, eax
je 0x554096
cmp ebp, dword [eax + 0x10]
je 0x553ff7
mov eax, dword [eax]
jmp 0x553624
mov ebx, dword [esp + 0x64]
mov dword [esp + 0xc], ebx
mov eax, esi
xor edx, edx
mov ecx, dword [ebp + 8]
call fcn.004253a0
mov ebx, eax
test ebx, ebx
je 0x553957
lea eax, [esp + 0x70]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x10], eax
mov eax, esi
mov edx, ebx
mov ecx, ebp
call fcn.00556320
test eax, eax
jne 0x553957
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], eax
test eax, eax
je 0x55419c
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [ebp + 0x14], 0
jle 0x5537ab
xor eax, eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x84], edi
mov dword [esp + 0x6c], esi
mov edi, eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
mov ecx, dword [edx + edi*4]
mov ebx, dword [esp + 0x80]
cmp ecx, dword [ebx + 8]
jne 0x5536e8
mov dword [edx + edi*4], 0xffffffff
mov edx, dword [esp + 0x84]
cmp dword [edx + 0xf8], 0
je 0x553785
mov edx, dword [esp + 0x70]
test edx, edx
je 0x55370c
mov edx, dword [edx + 8]
mov edx, dword [edx + edi*4]
jmp 0x553713
mov edx, dword [esp + 0x78]
mov edx, dword [edx + 8]
lea ebp, [edx + edx*2]
mov esi, dword [esp + 0x78]
mov ebx, dword [esi + 0x10]
mov ebx, dword [ebx + ebp*8]
mov ebp, dword [esi + 4]
mov eax, dword [esp + 0x6c]
mov esi, dword [eax]
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x74]
mov edx, dword [edx + ecx]
mov dword [esp + 0x7c], edx
push dword [eax + 0x1fc]
push edx
push ebx
push ebp
push 0x14
push dword [esi + 0xfc]
call dword [esi + 0xf8]
add esp, 0x18
cmp eax, 1
je 0x554150
cmp eax, 2
je 0x554146
test eax, eax
je 0x553783
push str.authorizer_malfunction
push dword [esp + 0x70]
call fcn.005860f0
add esp, 8
mov edx, dword [esp + 0x6c]
mov dword [edx + 4], 1
xor eax, eax
inc edi
mov edx, dword [esp + 0x8c]
cmp edi, dword [edx + 0x14]
jl 0x5536cb
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x78]
mov ebp, edx
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x6c]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x38], eax
mov edx, dword [ebx + 4]
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 0x1a8]
test eax, eax
jne 0x5537c5
mov eax, esi
mov dword [esp + 0x44], eax
mov ecx, dword [eax + 0x190]
mov edx, dword [eax + 0x194]
mov dword [esp + 0x40], edx
test ecx, ecx
jle 0x55382a
xor eax, eax
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x84], edi
mov dword [esp + 0x6c], esi
mov ebp, dword [esp + 0x48]
mov esi, edx
mov edi, dword [esp + 0x38]
mov edx, eax
shl edx, 4
cmp ebp, dword [esi + edx]
jne 0x55380f
cmp edi, dword [esi + edx + 4]
je 0x5540d5
inc eax
cmp eax, ecx
jl 0x5537fb
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x6c]
shl ecx, 4
add ecx, 0x10
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x40]
call fcn.00490370
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], 0
je 0x554116
mov dword [esp + 0x78], ebx
mov ecx, dword [esp + 0x44]
mov dword [ecx + 0x194], eax
mov ebx, dword [ecx + 0x190]
mov edx, ebx
shl edx, 4
inc ebx
mov dword [ecx + 0x190], ebx
mov ebx, dword [esp + 0x48]
mov dword [edx + eax], ebx
mov ebx, dword [esp + 0x38]
mov dword [edx + eax + 4], ebx
mov byte [edx + eax + 8], 0
mov ebx, dword [esp + 0x3c]
mov dword [edx + eax + 0xc], ebx
mov ebx, dword [esp + 0x78]
inc dword [esi + 0x44]
cmp dword [esp + 0x5c], 0
je 0x5538d8
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, esi
mov edx, dword [esp + 0x48]
mov ecx, ebx
call fcn.00554d30
cmp dword [esp + 0xb4], 0
je 0x553921
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, esi
mov edx, dword [esp + 0x48]
mov ecx, ebx
call fcn.00554d30
mov eax, dword [esp + 0x68]
test eax, eax
je 0x55396e
cmp eax, dword [edi + 0xf0]
jb 0x55410c
cmp eax, dword [edi + 0xf4]
jae 0x55410c
mov edx, dword [edi + 0xec]
mov dword [eax], edx
mov dword [edi + 0xec], eax
dec dword [edi + 0xe4]
jmp 0x55396e
cmp dword [esp + 0x60], 0
je 0x553400
movzx eax, byte [edi + 0x1e]
test eax, eax
jne 0x553400
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x5534b3
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x5c]
mov eax, edx
mov dword [esp + 0x80], edx
call fcn.0055a840
mov edx, dword [esp + 0x80]
test eax, eax
je 0x553fd1
mov dword [esp + 0x80], edx
mov dword [esp + 0x5c], ebp
mov ebp, eax
movzx edx, byte [ebp + 0x18]
test edx, edx
jne 0x5539d2
cmp dword [esi + 0x1a8], 0
jne 0x5539d2
movzx edx, byte [esi + 0x158]
test edx, edx
je 0x553fc6
xor edx, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
lea edx, [esp + 0x58]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x54]
mov dword [esp + 0x10], edx
mov eax, esi
mov edx, dword [esp + 0x80]
mov ecx, ebp
call fcn.00556320
test eax, eax
je 0x553a19
test ebx, ebx
je 0x553400
movzx edx, byte [edi + 0x1e]
test edx, edx
je 0x553fc6
jmp 0x553400
mov dword [esp + 0xc], 0
mov eax, edi
xor edx, edx
xor ecx, ecx
call fcn.005569f0
mov dword [esp + 0x50], eax
cmp dword [esp + 0x50], 0
je 0x553f92
mov ecx, eax
lea eax, [ecx + 8]
mov dword [esp + 0x48], eax
mov edx, dword [ebp]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
inc word [edx + 0x20]
mov edx, dword [esi + 0x44]
mov dword [eax + 0x18], edx
inc dword [esi + 0x44]
cmp dword [esp + 0xb4], 0
je 0x553aa3
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], 0xffffffff
mov eax, esi
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
call fcn.005542d0
cmp dword [esp + 0x5c], 0
je 0x553ae0
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], 1
mov eax, esi
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
call fcn.005542d0
mov edx, dword [esp + 0x48]
mov dword [edx + 4], 0
mov edx, dword [esp + 0x50]
movsx ecx, word [edx]
test ecx, ecx
jle 0x553f8b
xor eax, eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x6c], esi
mov ebp, eax
mov ebx, dword [esp + 0x48]
mov eax, dword [ebx]
test eax, eax
je 0x553b40
cmp eax, dword [edi + 0xf0]
jb 0x554290
cmp eax, dword [edi + 0xf4]
jae 0x554290
mov edx, dword [edi + 0xec]
mov dword [eax], edx
mov dword [edi + 0xec], eax
dec dword [edi + 0xe4]
mov eax, dword [ebx + 4]
test eax, eax
je 0x553b73
cmp eax, dword [edi + 0xf0]
jb 0x554286
cmp eax, dword [edi + 0xf4]
jae 0x554286
mov edx, dword [edi + 0xec]
mov dword [eax], edx
mov dword [edi + 0xec], eax
dec dword [edi + 0xe4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x553ba6
cmp eax, dword [edi + 0xf0]
jb 0x55427c
cmp eax, dword [edi + 0xf4]
jae 0x55427c
mov edx, dword [edi + 0xec]
mov dword [eax], edx
mov dword [edi + 0xec], eax
dec dword [edi + 0xe4]
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x553bd9
cmp eax, dword [edi + 0xf0]
jb 0x554272
cmp eax, dword [edi + 0xf4]
jae 0x554272
mov edx, dword [edi + 0xec]
mov dword [eax], edx
mov dword [edi + 0xec], eax
dec dword [edi + 0xe4]
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x553da7
mov edx, dword [esi]
mov dword [esp + 0x4c], edx
movzx ecx, word [esi + 0x20]
dec ecx
mov word [esi + 0x20], cx
movzx edx, cx
test edx, edx
jg 0x553da7
mov eax, dword [esi + 0x14]
test eax, eax
je 0x553c8a
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x48], ebx
mov dword [esp + 0x84], edi
mov ebx, eax
xor esi, esi
mov ebp, dword [ebx + 0x20]
mov edx, dword [ebx]
mov ecx, edx
test edx, edx
je 0x554201
movsx edi, byte [edx]
test edi, edi
je 0x553c3e
inc ecx
movsx edi, byte [ecx]
test edi, edi
jne 0x553c36
sub ecx, edx
and ecx, 0x3fffffff
mov eax, dword [ebx + 0x24]
add eax, 0x14
mov dword [esp + 0xc], 0
call fcn.004fbe50
mov ecx, dword [ebx + 0x10]
mov edi, dword [ecx]
mov eax, edi
mov edx, dword [ebx + 0x1c]
call fcn.004e33d8
mov eax, edi
mov edx, ebx
call fcn.004e33d8
mov ebx, ebp
test ebp, ebp
jne 0x553c20
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x84]
mov eax, esi
call fcn.004fb6c0
mov eax, esi
call fcn.004f3c60
mov eax, dword [esp + 0x4c]
mov edx, dword [esi + 4]
call fcn.004e33d8
mov eax, dword [esp + 0x4c]
mov edx, dword [esi + 0x28]
call fcn.004e33d8
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x553cd1
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x30], edx
call fcn.004ce330
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
call fcn.004e33d8
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x553ce1
mov eax, dword [esp + 0x4c]
call fcn.0044db10
mov eax, dword [esi + 0x34]
mov dword [esi + 0x34], 0
test eax, eax
je 0x553d27
mov dword [esp + 0x84], edi
mov ecx, dword [eax]
mov edi, dword [eax + 0x10]
test ecx, ecx
je 0x553d10
mov edx, dword [ecx + 0x128]
mov dword [eax + 0x10], edx
mov dword [ecx + 0x128], eax
jmp 0x553d1a
mov dword [esi + 0x34], eax
mov dword [eax + 0x10], 0
mov eax, edi
test edi, edi
jne 0x553cf6
mov edi, dword [esp + 0x84]
mov edx, dword [esi + 0x3c]
test edx, edx
je 0x5541c3
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x34], ecx
mov eax, dword [esi]
test ecx, ecx
jle 0x5541be
xor ecx, ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x84], edi
mov ebx, ecx
mov edi, dword [esp + 0x34]
mov ecx, dword [edx + ebx*4]
test eax, eax
je 0x5541f2
test ecx, ecx
je 0x5541e7
cmp ecx, dword [eax + 0xf0]
jb 0x5541d3
cmp ecx, dword [eax + 0xf4]
jae 0x5541d3
mov edx, dword [eax + 0xec]
mov dword [ecx], edx
mov dword [eax + 0xec], ecx
dec dword [eax + 0xe4]
mov eax, dword [esi]
mov edx, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
inc ebx
cmp ebx, edi
jl 0x553d56
jmp 0x5541b3
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x553dc0
mov eax, edi
mov edx, esi
call fcn.004ce330
mov eax, edi
mov edx, esi
call fcn.004e33d8
mov esi, dword [ebx + 0x1c]
test esi, esi
je 0x553f03
movzx eax, word [esi + 2]
test ah, 0x20
jne 0x553eee
mov eax, edi
mov edx, dword [esi + 8]
call fcn.004cdfe0
mov eax, edi
mov edx, dword [esi + 0xc]
call fcn.004cdfe0
movzx eax, word [esi + 2]
mov edx, eax
and edx, 0x1000
cmp edx, 0x1000
je 0x553e0a
test byte [esi + 0x22], 1
jne 0x55425f
mov edx, eax
and edx, 0x800
cmp edx, 0x800
je 0x554239
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x553eee
mov edx, dword [ecx + 0xc]
cmp dword [ecx], 0
jle 0x553ed2
xor eax, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x48], ebx
mov ebx, eax
mov esi, edx
mov ebp, ecx
mov eax, edi
mov edx, dword [esi]
call fcn.004cdfe0
mov edx, dword [esi + 4]
test edx, edx
je 0x553e85
cmp edx, dword [edi + 0xf0]
jb 0x55422d
cmp edx, dword [edi + 0xf4]
jae 0x55422d
mov eax, dword [edi + 0xec]
mov dword [edx], eax
mov dword [edi + 0xec], edx
dec dword [edi + 0xe4]
mov edx, dword [esi + 8]
test edx, edx
je 0x553eb8
cmp edx, dword [edi + 0xf0]
jb 0x554221
cmp edx, dword [edi + 0xf4]
jae 0x554221
mov eax, dword [edi + 0xec]
mov dword [edx], eax
mov dword [edi + 0xec], edx
dec dword [edi + 0xe4]
inc ebx
add esi, 0x14
cmp ebx, dword [ebp]
jl 0x553e49
mov ecx, ebp
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
mov edx, dword [ecx + 0xc]
mov eax, edi
mov dword [esp + 0x44], ecx
call fcn.004e33d8
mov ecx, dword [esp + 0x44]
mov eax, edi
mov edx, ecx
call fcn.004e33d8
movzx eax, word [esi + 2]
and eax, 0x4000
cmp eax, 0x4000
je 0x553f03
mov eax, edi
mov edx, esi
call fcn.004e33d8
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x553f6c
mov ecx, dword [esi + 4]
mov edx, dword [esi]
test ecx, ecx
jle 0x553f5c
xor eax, eax
mov dword [esp + 0x48], ebx
mov ebx, eax
mov eax, dword [edx + ebx*8]
test eax, eax
je 0x553f53
cmp eax, dword [edi + 0xf0]
jb 0x554212
cmp eax, dword [edi + 0xf4]
jae 0x554212
mov edx, dword [edi + 0xec]
mov dword [eax], edx
mov dword [edi + 0xec], eax
dec dword [edi + 0xe4]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
inc ebx
cmp ebx, ecx
jl 0x553f1b
mov ebx, dword [esp + 0x48]
mov eax, edi
call fcn.004e33d8
mov eax, edi
mov edx, esi
call fcn.004e33d8
inc ebp
add ebx, 0x38
mov edx, dword [esp + 0x50]
movsx ecx, word [edx]
cmp ebp, ecx
jl 0x553b0e
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x6c]
mov eax, edi
call fcn.004e33d8
mov eax, dword [esp + 0x54]
test eax, eax
je 0x553fc6
cmp eax, dword [edi + 0xf0]
jb 0x554208
cmp eax, dword [edi + 0xf4]
jae 0x554208
mov edx, dword [edi + 0xec]
mov dword [eax], edx
mov dword [edi + 0xec], eax
dec dword [edi + 0xe4]
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jne 0x5539b2
add esp, 0x94
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x6c]
jmp 0x55365f
mov edx, dword [eax + 0xc]
mov edi, ebp
mov esi, ebx
mov ebx, edx
jmp 0x554004
inc ebx
inc esi
xor edx, edx
test edi, edi
setg dl
dec edi
test edx, edx
je 0x55408a
movzx ebp, byte [ebx]
test ebp, ebp
je 0x55408a
movzx edx, byte [ebp + 0x789b60]
movzx ebp, byte [esi]
movzx ebp, byte [ebp + 0x789b60]
cmp edx, ebp
je 0x554002
mov edx, ebx
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
test edi, edi
js 0x554056
movzx edi, byte [edx]
movzx edx, byte [edi + 0x789b60]
movzx esi, byte [esi]
movzx esi, byte [esi + 0x789b60]
cmp esi, edx
jne 0x553645
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x64]
mov eax, dword [eax + 8]
mov dword [esp + 0x78], eax
test eax, eax
je 0x553598
mov ebx, eax
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x6c]
jmp 0x55365f
mov edx, ebx
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
jmp 0x554036
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x64]
xor eax, eax
mov dword [esp + 0x78], eax
jmp 0x553598
mov eax, ebp
mov ebp, dword [esp + 0x64]
jmp 0x553594
movzx eax, byte [ecx]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
jmp 0x553594
xor edx, edx
jmp 0x5534f4
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x78], ebx
mov ecx, dword [esp + 0x40]
movzx ebx, byte [ecx + edx + 8]
xor eax, eax
test ebx, ebx
setne al
mov byte [ecx + edx + 8], al
mov ebx, dword [esp + 0x78]
jmp 0x553892
call fcn.004c69c4
jmp 0x55396e
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
call fcn.004e33d8
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov dword [edx + 0x194], eax
mov dword [edx + 0x190], 0
mov eax, dword [edx]
mov byte [eax + 0x1e], 1
jmp 0x553892
mov eax, 1
jmp 0x553785
cmp dword [esi + 4], 2
jg 0x554172
cmp dword [esp + 0x48], 0
jne 0x554172
push ebx
push ebp
push str.access_to__s._s_is_prohibited
push dword [esp + 0x78]
call fcn.005860f0
add esp, 0x10
jmp 0x55418c
push ebx
push ebp
push dword [esp + 0x84]
push str.access_to__s._s._s_is_prohibited
push dword [esp + 0x7c]
call fcn.005860f0
add esp, 0x14
mov edx, dword [esp + 0x6c]
mov dword [edx + 4], 0x17
jmp 0x553783
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x28], eax
lea edx, [esp + 0x28]
mov dword [esp + 0x88], edx
jmp 0x55369d
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x84]
call fcn.004e33d8
mov eax, dword [esp + 0x4c]
mov edx, esi
call fcn.004e33d8
jmp 0x553da7
mov eax, ecx
call fcn.004c69c4
mov eax, dword [esi]
mov edx, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
jmp 0x553d9d
inc ebx
cmp ebx, edi
jl 0x553d56
jmp 0x5541b3
test ecx, ecx
jne 0x5541d3
inc ebx
cmp ebx, edi
jl 0x553d56
jmp 0x5541b3
mov ecx, esi
jmp 0x553c46
call fcn.004c69c4
jmp 0x553fc6
call fcn.004c69c4
mov ecx, dword [esi + 4]
mov edx, dword [esi]
jmp 0x553f53
mov eax, edx
call fcn.004c69c4
jmp 0x553eb8
mov eax, edx
call fcn.004c69c4
jmp 0x553e85
mov edx, dword [esi + 0x10]
test edx, edx
je 0x553eee
mov eax, edi
mov dword [esp + 0x24], edx
call fcn.004ce330
mov edx, dword [esp + 0x24]
mov eax, edi
call fcn.004e33d8
jmp 0x553eea
mov eax, edi
mov edx, dword [esi + 4]
call fcn.004e33d8
movzx eax, word [esi + 2]
jmp 0x553e0a
call fcn.004c69c4
jmp 0x553bd9
call fcn.004c69c4
jmp 0x553ba6
call fcn.004c69c4
jmp 0x553b73
call fcn.004c69c4
jmp 0x553b40
mov dword [esp + 0x48], edx
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x5c]
jmp 0x55348c
xor eax, eax
jmp 0x55348c
mov dword [esp + 0x48], 0xfff0bdc0
mov eax, 0xff0bdc00
jmp 0x55348c