Function at 0x523550
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3dc]
cmp eax, dword [ecx + 8]
jbe 0x5241a4
sub esp, 0x45c
lea edi, [esp + 0x1d4]
mov ecx, 0xa0
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x460]
mov ebx, dword [edx]
mov ebp, dword [edx + 4]
mov esi, dword [edx + 8]
mov eax, ebx
mov ebx, dword [edx + 0xc]
mov ecx, ebx
mov ebx, dword [edx + 0x10]
mov edi, ebx
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x64], ebx
mov ebx, dword [edx + 0x18]
mov dword [esp + 0x58], ebx
mov ebx, dword [edx + 0x1c]
mov dword [esp + 0x5c], ebx
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x50], ebx
mov ebx, dword [edx + 0x24]
mov dword [esp + 0x54], ebx
mov ebx, dword [edx + 0x28]
mov dword [esp + 0x48], ebx
mov ebx, dword [edx + 0x2c]
mov dword [esp + 0x4c], ebx
mov ebx, dword [edx + 0x30]
mov dword [esp + 0x40], ebx
mov ebx, dword [edx + 0x34]
mov dword [esp + 0x44], ebx
mov ebx, dword [edx + 0x38]
mov edx, dword [edx + 0x3c]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x468]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1c4], ecx
mov ecx, dword [esp + 0x464]
mov dword [esp + 0x458], ecx
mov dword [esp + 0x1bc], edx
mov edx, dword [esp + 0x46c]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1c4]
jmp 0x523851
mov edx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x68]
add esi, eax
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x60]
add esi, edi
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x58]
add esi, edi
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x50]
add ebx, esi
mov dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x88]
add ebx, esi
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x80]
add ebx, esi
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x38]
add ebx, esi
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0xb0]
add ebx, edx
mov edx, dword [esp + 0x74]
adc ebp, edx
mov edx, dword [esp + 0xa8]
add edx, eax
mov eax, dword [esp + 0x6c]
adc ecx, eax
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xa0]
add eax, edx
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0x64]
adc ebx, eax
mov eax, dword [esp + 0x98]
add eax, edi
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x5c]
adc eax, edx
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x50]
add edx, edi
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x54]
adc edx, edi
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x88]
add edi, eax
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x8c]
adc eax, edi
mov dword [esp + 0xbc], eax
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x80]
add edi, eax
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x84]
adc eax, edi
mov dword [esp + 0xb8], eax
mov edi, dword [esp + 0x78]
add edi, esi
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x3c]
adc esi, edi
mov edi, dword [esp + 0xdc]
add edi, 0xffffff80
mov dword [esp + 0xdc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 0x80
mov eax, dword [esp + 0x458]
add eax, edi
mov edi, dword [esp + 0xe0]
add edi, 0xffffff80
mov dword [esp + 0xe0], edi
mov dword [esp + 0x458], eax
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x54], edx
mov dword [esp + 0x1ac], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x50], ecx
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x64], ebx
mov ecx, dword [esp + 0x1ac]
mov dword [esp + 0x1a4], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x19c], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x194], ebx
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x18c], ebp
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x44], ebp
mov ebx, dword [esp + 0x38]
mov edx, esi
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x1ac]
mov ebp, dword [esp + 0x18c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xe0]
cmp edx, 0x80
jl 0x5239a6
mov dword [esp + 0x38], ebx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x60], edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x184], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x184]
jmp 0x523a3b
mov ebx, 0x10
jmp 0x523b90
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], ecx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x17c], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x16c], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x164], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x15c], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x154], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x80], esi
mov ebp, dword [esp + 0x15c]
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x174]
mov esi, dword [esp + 0x154]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x144], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x13c], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x98], ebp
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x134], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x94], ebx
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x174]
mov ebp, dword [esp + 0x15c]
mov ebx, dword [esp + 0x164]
jmp 0x523fca
mov edx, dword [esp + 0x460]
mov dword [edx], eax
mov dword [edx + 4], ebp
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], edi
mov eax, dword [esp + 0x64]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x40]
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 0x34], eax
mov dword [edx + 0x38], ebx
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x3c], eax
add esp, 0x45c
ret
lea ebx, [esp + edi*8 + 0x1d4]
mov dword [ebx], esi
lea ebx, [esp + edi*8 + 0x1d8]
mov dword [ebx], ebp
lea ebx, [edi + 1]
mov ebp, dword [esp + 0x458]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
cmp ebx, 0x10
jge 0x523891
shl ebx, 3
cmp edx, ebx
jbe 0x52419a
mov dword [esp + 0x28], ebx
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x458]
lea edi, [esi + ebp*8]
movzx edi, byte [edi]
inc ebx
cmp edx, ebx
jbe 0x524191
shl edi, 0x18
lea ebx, [esi + ebp*8 + 1]
movzx ebx, byte [ebx]
shl ebx, 0x10
or ebx, edi
mov edi, dword [esp + 0x28]
add edi, 2
cmp edx, edi
jbe 0x524188
lea edi, [esi + ebp*8 + 2]
movzx edi, byte [edi]
shl edi, 8
or edi, ebx
mov ebx, dword [esp + 0x28]
add ebx, 3
cmp edx, ebx
jbe 0x52417f
lea ebx, [esi + ebp*8 + 3]
movzx ebx, byte [ebx]
or ebx, edi
mov edi, dword [esp + 0x28]
add edi, 4
cmp edx, edi
jbe 0x524176
lea edi, [esi + ebp*8 + 4]
movzx edi, byte [edi]
mov dword [esp + 0xd8], edi
shr edi, 8
or ebx, edi
mov edi, dword [esp + 0x28]
add edi, 5
cmp edx, edi
jbe 0x52416d
mov edi, dword [esp + 0xd8]
shl edi, 0x18
lea ebp, [esi + ebp*8 + 5]
movzx ebp, byte [ebp]
mov dword [esp + 0xd8], ebp
shl ebp, 0x10
or ebp, edi
mov edi, dword [esp + 0xd8]
shr edi, 0x10
or edi, ebx
mov ebx, dword [esp + 0x28]
add ebx, 6
cmp edx, ebx
jbe 0x524164
mov ebx, dword [esp + 0x34]
lea ebx, [esi + ebx*8 + 6]
movzx ebx, byte [ebx]
mov dword [esp + 0xd8], ebx
shl ebx, 8
or ebx, ebp
mov ebp, dword [esp + 0xd8]
shr ebp, 0x18
or ebp, edi
mov edi, dword [esp + 0x28]
add edi, 7
cmp edx, edi
jbe 0x52415b
mov edi, dword [esp + 0x34]
lea esi, [esi + edi*8 + 7]
movzx esi, byte [esi]
or esi, ebx
cmp edi, 0x50
jb 0x523a0b
jmp 0x52414f
lea edx, [esp + ebx*8 + 0x1d4]
mov dword [edx], esi
lea edx, [esp + ebx*8 + 0x1d8]
mov dword [edx], ebp
inc ebx
mov edx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x60]
cmp ebx, 0x50
jge 0x52389b
lea edx, [ebx - 2]
cmp edx, 0x50
jae 0x524143
lea edx, [esp + ebx*8 + 0x1c4]
mov ebp, dword [edx + 4]
mov dword [esp + 0x14], ebp
mov edx, dword [edx]
mov dword [esp + 0x10], edx
shl edx, 0xd
shr ebp, 0x13
or ebp, edx
mov edx, dword [esp + 0x14]
shl edx, 3
mov esi, dword [esp + 0x10]
shr esi, 0x1d
or esi, edx
xor esi, ebp
mov edx, dword [esp + 0x14]
mov ebp, edx
shl edx, 0xd
mov edi, dword [esp + 0x10]
shr edi, 0x13
or edx, edi
mov edi, dword [esp + 0x10]
shl edi, 3
shr ebp, 0x1d
or ebp, edi
xor edx, ebp
mov ebp, dword [esp + 0x14]
mov edi, ebp
shr ebp, 6
xor esi, ebp
mov ebp, dword [esp + 0x10]
shr ebp, 6
shl edi, 0x1a
or edi, ebp
xor edi, edx
lea edx, [ebx - 0xf]
cmp edx, 0x50
jae 0x524137
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
lea edx, [esp + ebx*8 + 0x15c]
mov ebp, dword [edx + 4]
mov dword [esp + 0xc], ebp
mov edx, dword [edx]
mov dword [esp + 8], edx
shl edx, 0x1f
shr ebp, 1
or ebp, edx
mov edx, dword [esp + 8]
shl edx, 0x18
mov esi, dword [esp + 0xc]
shr esi, 8
or esi, edx
xor esi, ebp
mov edx, dword [esp + 8]
mov ebp, edx
shr edx, 1
mov edi, dword [esp + 0xc]
shl edi, 0x1f
or edi, edx
mov edx, ebp
shr ebp, 8
mov ebx, dword [esp + 0xc]
shl ebx, 0x18
or ebx, ebp
xor ebx, edi
mov ebp, dword [esp + 0xc]
mov edi, ebp
shr ebp, 7
xor esi, ebp
shr edx, 7
shl edi, 0x19
or edi, edx
xor edi, ebx
mov edx, dword [esp + 0x30]
lea ebx, [edx - 7]
cmp ebx, 0x50
jae 0x52412b
lea ebx, [esp + edx*8 + 0x19c]
mov ebp, dword [ebx]
mov edx, dword [esp + 0x20]
add edx, ebp
mov dword [esp + 0xd8], edx
add edx, edi
mov dword [esp + 0xd4], edx
mov ebx, dword [ebx + 4]
mov edx, dword [esp + 0x20]
add edx, ebp
mov edx, dword [esp + 0x24]
adc edx, ebx
mov ebx, dword [esp + 0xd8]
add ebx, edi
adc edx, esi
mov ebx, dword [esp + 0x30]
lea ebp, [ebx - 0x10]
cmp ebp, 0x50
jae 0x52411f
lea ebp, [esp + ebx*8 + 0x154]
mov esi, dword [ebp]
mov edi, dword [esp + 0xd4]
add esi, edi
mov ebp, dword [ebp + 4]
adc ebp, edx
cmp ebx, 0x50
jb 0x523b6a
jmp 0x524113
mov dword [esp + 0xac], ecx
mov dword [esp + 0xd0], edx
lea ebx, [esi + edi*8]
mov esi, dword [ebx]
mov dword [esp + 0xd8], esi
mov ebp, dword [esp + 0xd4]
add esi, ebp
mov dword [esp + 0xcc], esi
lea edi, [esp + edi*8 + 0x1d4]
mov dword [esp + 0x454], edi
mov ecx, dword [edi]
mov dword [esp + 0xc8], ecx
add ecx, esi
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0xb4]
shl esi, 4
shr eax, 0x1c
or esi, eax
mov eax, dword [esp + 0xb0]
shl eax, 0x1e
mov edi, dword [esp + 0xb4]
shr edi, 2
or edi, eax
xor esi, edi
mov eax, dword [esp + 0xb0]
mov edi, eax
shl eax, 0x19
mov edx, dword [esp + 0xb4]
shr edx, 7
or edx, eax
xor esi, edx
mov eax, dword [esp + 0xa8]
mov edx, edi
and edi, eax
mov ebp, dword [esp + 0xa0]
and edx, ebp
xor edx, edi
and eax, ebp
xor eax, edx
mov edx, esi
add esi, eax
mov dword [esp + 0x18], esi
mov ebp, dword [esp + 0x98]
add ebp, ecx
mov dword [esp + 0xc4], ebp
add ecx, esi
mov dword [esp + 0xc0], ecx
mov ebx, dword [ebx + 4]
mov ecx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xd4]
add ecx, ebp
mov ebp, dword [esp + 0xd0]
adc ebp, ebx
mov ecx, dword [esp + 0x454]
mov ecx, dword [ecx + 4]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xcc]
add ebx, edi
adc ebp, ecx
mov dword [esp + 0xd0], ebp
mov ecx, dword [esp + 0xb0]
mov ebx, ecx
shl ecx, 4
mov edi, dword [esp + 0xb4]
shr edi, 0x1c
or edi, ecx
mov ecx, ebx
shr ebx, 2
mov esi, dword [esp + 0xb4]
shl esi, 0x1e
or ebx, esi
xor ebx, edi
shr ecx, 7
mov edi, dword [esp + 0xb4]
shl edi, 0x19
or ecx, edi
xor ecx, ebx
mov ebx, dword [esp + 0xb4]
mov edi, dword [esp + 0xac]
and ebx, edi
mov esi, dword [esp + 0xa4]
mov ebp, dword [esp + 0xb4]
and esi, ebp
xor esi, ebx
mov ebx, dword [esp + 0xa4]
and ebx, edi
xor ebx, esi
add edx, eax
adc ecx, ebx
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x1c]
add eax, edx
mov eax, dword [esp + 0xd0]
mov ebx, dword [esp + 0x9c]
adc ebx, eax
mov esi, dword [esp + 0x18]
add edx, esi
adc eax, ecx
mov ecx, dword [esp + 0x2c]
inc ecx
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x11c], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x114], ebp
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x12c]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x114]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x10c], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x98], ecx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x88], ecx
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x94], edx
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x114]
mov ebx, dword [esp + 0xc4]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xb0], eax
mov dword [esp + 0x90], ebx
mov edx, dword [esp + 0x2c]
cmp edx, 0x50
jge 0x52363c
mov dword [esp + 0xb4], ebp
shr ebx, 0xe
mov edi, dword [esp + 0x94]
shl edi, 0x12
or edi, ebx
mov ebx, dword [esp + 0x94]
shl ebx, 0xe
mov esi, dword [esp + 0x90]
shr esi, 0x12
or ebx, esi
xor ebx, edi
mov esi, dword [esp + 0x90]
mov edi, esi
shl esi, 0x17
mov ebp, dword [esp + 0x94]
shr ebp, 9
or ebp, esi
xor ebx, ebp
mov ebp, dword [esp + 0x78]
mov esi, ebx
add ebx, ebp
mov edx, dword [esp + 0x88]
and edi, edx
mov edx, dword [esp + 0x90]
not edx
mov ebp, dword [esp + 0x80]
and edx, ebp
xor edx, edi
mov dword [esp + 0xd8], edx
mov edi, ebx
add ebx, edx
mov dword [esp + 0xd4], ebx
mov ebp, dword [esp + 0x90]
shl ebp, 0x12
mov ebx, dword [esp + 0x94]
shr ebx, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x90]
shl ebp, 0xe
mov edx, dword [esp + 0x94]
shr edx, 0x12
or edx, ebp
xor ebx, edx
mov edx, dword [esp + 0x90]
shr edx, 9
mov ebp, dword [esp + 0x94]
shl ebp, 0x17
or edx, ebp
xor edx, ebx
mov ebx, dword [esp + 0x78]
add esi, ebx
mov ebx, dword [esp + 0x7c]
adc edx, ebx
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x8c]
mov esi, ebx
and ebx, ebp
xchg esi, ebx
not ebx
xchg esi, ebx
mov ebp, dword [esp + 0x84]
and esi, ebp
xor esi, ebx
mov ebx, dword [esp + 0xd8]
add edi, ebx
adc edx, esi
mov ebx, dword [0x82146c]
mov esi, dword [0x821468]
mov edi, dword [esp + 0x2c]
cmp edi, ebx
jb 0x523d06
mov eax, edi
mov ecx, ebx
call fcn.0045f420
mov eax, ebx
mov ecx, 0x50
call fcn.0045f420
mov eax, ebp
mov ecx, 0x50
call fcn.0045f420
mov eax, ebx
mov ecx, 0x50
call fcn.0045f420
mov eax, edx
mov ecx, 0x50
call fcn.0045f420
mov eax, edx
mov ecx, 0x50
call fcn.0045f420
mov eax, edi
mov ecx, 0x50
call fcn.0045f420
mov eax, edi
mov ecx, edx
call fcn.0045f420
mov eax, ebx
mov ecx, edx
call fcn.0045f420
mov eax, edi
mov ecx, edx
call fcn.0045f420
mov eax, edi
mov ecx, edx
call fcn.0045f420
mov eax, ebx
mov ecx, edx
call fcn.0045f420
mov eax, edi
mov ecx, edx
call fcn.0045f420
mov eax, ebx
mov ecx, edx
call fcn.0045f420
mov eax, ebx
mov ecx, edx
call fcn.0045f420
nop
call fcn.0045df90
jmp fcn.00523550