Function at 0x52db45
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c4
push ebx
push esi
push edi
push 0x631a7c
push str.FontUri
lea eax, [ebp + 0xc]
call fcn.004cfbd8
xor edi, edi
cmp word [eax], di
je 0x52ddbe
add eax, 2
push eax
mov eax, dword [ebp + 8]
add eax, 0x20
push eax
lea eax, [ebp - 0x4b8]
push eax
call fcn.00401f51
lea ecx, [ebp - 0x4b8]
lea eax, [ebp - 0x6c0]
call fcn.00401b6e
lea eax, [ebp - 0x6c0]
push str..ttf
push eax
xor bl, bl
call fcn.00613e25
test eax, eax
pop ecx
pop ecx
je 0x52dbcc
lea eax, [ebp - 0x6c0]
push str..odttf
push eax
call fcn.00613e25
test eax, eax
pop ecx
pop ecx
jne 0x52ddbe
inc bl
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x4b8]
push eax
lea esi, [ebp - 0xc]
call fcn.004cc196
test al, al
je 0x52ddaf
mov eax, esi
push eax
call fcn.00401cf8
mov esi, eax
cmp esi, edi
mov dword [ebp - 0x14], esi
jbe 0x52dd9c
mov dword [ebp - 4], edi
lea edi, [ebp - 4]
call fcn.0058d0a0
cmp dword [ebp - 4], 0
je 0x52dd91
push esi
push dword [ebp - 4]
lea eax, [ebp - 0xc]
push eax
call fcn.00401f89
cmp eax, esi
jne 0x52dd91
test bl, bl
je 0x52dce5
lea ecx, [ebp - 0x4b8]
lea esi, [ebp - 0x2b0]
call fcn.005375ef
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x52dc44
sub eax, edx
sar eax, 1
push 0
mov edi, eax
pop eax
push eax
pop esi
je 0x52dd91
cmp eax, 0x20
jae 0x52dcc2
movzx ecx, word [ebp + esi*2 - 0x2b0]
lea edx, [ecx - 0x30]
cmp dx, 9
ja 0x52dc7a
sub cl, 0x30
jmp 0x52dc94
lea edx, [ecx - 0x41]
cmp dx, 5
ja 0x52dc88
sub cl, 0x37
jmp 0x52dc94
lea edx, [ecx - 0x61]
cmp dx, 5
ja 0x52dcb0
sub cl, 0x57
test al, 1
mov edx, eax
jne 0x52dca5
shl cl, 4
shr edx, 1
mov byte [ebp + edx - 0x28], cl
jmp 0x52dcad
shr edx, 1
lea edx, [ebp + edx - 0x28]
or byte [edx], cl
inc eax
jmp 0x52dcba
cmp cx, 0x2d
jne 0x52dcbf
test al, 1
jne 0x52dcbf
inc esi
cmp esi, edi
jb 0x52dc5f
cmp eax, 0x20
jne 0x52dd91
mov esi, dword [ebp - 4]
push 2
pop edi
xor ecx, ecx
lea eax, [ebp - 0x19]
mov dl, byte [eax]
xor byte [esi + ecx], dl
inc ecx
dec eax
cmp ecx, 0x10
jb 0x52dcd3
add esi, 0x10
dec edi
jne 0x52dcce
mov dl, 1
lea eax, [ebp - 0x88]
call fcn.0040c63c
push dword [ebp - 0x14]
lea eax, [ebp - 0x88]
push dword [ebp - 4]
push eax
call fcn.004e0fa9
test al, al
je 0x52dd86
mov edi, dword [ebp - 0x74]
test edi, edi
je 0x52dd86
push 1
lea eax, [ebp - 0x2b0]
push eax
call fcn.0050f320
test al, al
je 0x52dd86
push 0x414
call fcn.00538281
test eax, eax
pop ecx
je 0x52dd3a
mov dword [eax], 0x6923ec
mov esi, eax
jmp 0x52dd3c
xor esi, esi
lea eax, [esi + 0x20c]
push eax
lea eax, [ebp - 0x2b0]
call fcn.00401050
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x2b0]
call fcn.00401050
push 0xc
call fcn.00538281
test eax, eax
pop ecx
je 0x52dd78
and dword [eax], 0
mov dword [eax + 4], 0x32
mov dword [eax + 8], esi
jmp 0x52dd7a
xor eax, eax
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx]
mov dword [edx], eax
and dword [eax], 0
mov dword [ecx], eax
lea esi, [ebp - 0x88]
call fcn.0040c67e
push dword [ebp - 4]
call fcn.005f858a
pop ecx
xor edi, edi
cmp dword [ebp - 0xc], 0xffffffff
je 0x52ddbe
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebp - 0xc], 0xffffffff
cmp dword [ebp - 0xc], 0xffffffff
je 0x52ddbe
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x665b8c
push str.FontRenderingEmSize
lea eax, [ebp + 0xc]
call fcn.004cfbd8
push eax
call fcn.005f9bc4
fstp qword [ebp - 0x18]
fldz
pop ecx
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 1
je 0x52dfd8
fld qword [ebp - 0x18]
lea eax, [ebp - 0xa8]
fstp qword [ebp - 8]
call fcn.004b3e84
push 0x631a7c
push str.RenderTransform
lea eax, [ebp + 0xc]
call fcn.004cfbd8
cmp word [eax], di
je 0x52de20
lea ecx, [ebp - 0xa8]
push ecx
call fcn.0052daac
jmp 0x52de22
xor al, al
test al, al
je 0x52de55
lea eax, [ebp - 0xa8]
call fcn.0059004a
test al, al
je 0x52de55
fld1
lea eax, [ebp - 8]
push eax
fstp qword [ebp - 8]
lea ecx, [ebp - 0x10]
lea eax, [ebp - 0xa8]
call fcn.0049a17c
fld qword [ebp - 8]
fmul qword [ebp - 0x18]
fstp qword [ebp - 8]
push 0x20c
call fcn.00538281
mov esi, eax
cmp esi, edi
pop ecx
je 0x52de84
fld qword [ebp - 8]
push ecx
fadd st(0), st(0)
push ecx
fstp qword [esp]
call fcn.004014e7
call fcn.00613f70
push eax
call fcn.004cf5ba
mov esi, eax
jmp 0x52de86
xor esi, esi
push 0xc
call fcn.00538281
cmp eax, edi
pop ecx
je 0x52de9d
or dword [eax + 4], 0xffffffff
mov dword [eax], edi
mov dword [eax + 8], edi
mov edi, eax
push esi
lea esi, [edi + 8]
mov dword [edi + 4], 0x34
call fcn.00499a02
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov esi, dword [ebp + 0x24]
mov dword [eax], edi
xor ebx, ebx
mov dword [edi], ebx
mov dword [esi], edi
mov edi, 0x631a7c
push edi
push str.OriginY
lea eax, [ebp + 0xc]
call fcn.004cfbd8
cmp word [eax], bx
je 0x52df68
push eax
call fcn.005f9bc4
fstp qword [ebp - 0x10]
pop ecx
mov ecx, dword [ebp + 8]
fld qword [ecx + 0x18]
fcomp qword [ebp - 0x10]
fnstsw ax
test ah, 5
jp 0x52df62
fldz
fcomp qword [ecx + 0x18]
fnstsw ax
test ah, 5
jp 0x52df62
fld qword [ecx + 0x18]
fadd qword [ebp - 0x18]
fstp qword [ebp - 8]
fld qword [ebp - 0x10]
fcomp qword [ebp - 8]
fnstsw ax
test ah, 0x41
jne 0x52df62
fld qword [ebp - 0x18]
fmul qword [0x694a00]
fstp qword [ebp - 0x18]
push 0xc
call fcn.00538281
cmp eax, ebx
pop ecx
je 0x52df38
or dword [eax + 4], 0xffffffff
mov dword [eax], ebx
mov dword [eax + 8], ebx
jmp 0x52df3a
xor eax, eax
fld qword [ebp - 0x18]
mov dword [eax + 4], 1
fadd qword [ebp - 8]
mov ecx, dword [esi]
mov dword [ecx], eax
mov dword [eax], ebx
fstp qword [ebp - 8]
mov dword [esi], eax
fld qword [ebp - 0x10]
fcomp qword [ebp - 8]
fnstsw ax
test ah, 0x41
je 0x52df21
mov ecx, dword [ebp + 8]
fld qword [ebp - 0x10]
fstp qword [ecx + 0x18]
push edi
push str.UnicodeString
lea eax, [ebp + 0xc]
call fcn.004cfbd8
mov esi, eax
cmp word [esi], bx
je 0x52dfd8
push 0x10
call fcn.00538281
cmp eax, ebx
pop ecx
je 0x52df9a
mov dword [eax], 0x6923e0
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov ebx, eax
push esi
lea esi, [ebx + 4]
call fcn.00496a9d
push 0xc
call fcn.00538281
pop ecx
xor ecx, ecx
cmp eax, ecx
je 0x52dfbe
or dword [eax + 4], 0xffffffff
mov dword [eax], ecx
mov dword [eax + 8], ecx
mov edi, eax
jmp 0x52dfc0
xor edi, edi
push ebx
lea esi, [edi + 8]
mov dword [edi + 4], ecx
call fcn.00499a02
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax]
mov dword [ecx], edi
and dword [edi], 0
mov dword [eax], edi
lea esi, [ebp + 0xc]
call fcn.004cfba0
pop edi
pop esi
pop ebx
leave
ret 0x20