Function at 0x53bfa0
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0x8dc
call fcn.004cb890
mov dword [ebp - 0x88c], 0
mov dword [ebp - 0x888], 0
mov dword [ebp - 0x884], 0
mov dword [ebp - 0x890], eax
call fcn.004cb890
mov ecx, edi
and byte [ebp - 0x86c], 0xf8
mov dword [ebp - 0x87c], 0
mov dword [ebp - 0x878], 0
mov dword [ebp - 0x874], 0
mov dword [ebp - 0x880], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x870], 0
mov dword [esp], eax
call fcn.005a62a0
sub esp, 4
cmp eax, 0xa2
mov ebx, eax
jne 0x53c291
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
test edx, edx
js 0x53c281
mov ecx, dword [edi + 0x74]
mov esi, eax
add esi, 0x20
mov dword [ebp - 0x8d0], esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x98]
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
mov dword [esp + 8], str.define
mov dword [esp], esi
call eax
mov esi, dword [ebp - 0x8d0]
sub esp, 0xc
lea eax, [edi + 0x20]
mov dword [esp], esi
mov ecx, eax
mov dword [ebp - 0x8c0], eax
call fcn.005cdba0
sub esp, 4
test eax, eax
mov dword [ebp - 0x8b4], eax
je 0x53c2d0
mov eax, dword [ebp + 8]
mov ecx, edi
mov dword [esp], eax
call fcn.005a62a0
sub esp, 4
cmp eax, 0x28
je 0x53c3a2
mov esi, dword [ebp + 8]
mov edx, dword [esi]
mov ebx, esi
mov dword [ebp - 0x8a0], edx
mov edx, dword [esi + 4]
mov dword [ebp - 0x89c], edx
mov edx, dword [esi + 8]
mov dword [ebp - 0x898], edx
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x894], edx
cmp eax, 0xffffffff
je 0x53c135
cmp eax, 0xa
je 0x53c135
mov dword [esp], eax
lea ecx, [ebp - 0x880]
mov dword [esp + 4], ebx
call fcn.0053df40
mov ecx, edi
sub esp, 8
mov dword [esp], ebx
call fcn.005a62a0
sub esp, 4
cmp eax, 0xa
je 0x53c0d4
cmp byte [ebx + 0x10], 0
je 0x53c0d4
mov dword [esp + 4], ebx
lea ecx, [ebp - 0x880]
mov dword [esp], 0x20
mov dword [ebp - 0x8ac], eax
call fcn.0053df40
mov eax, dword [ebp - 0x8ac]
sub esp, 8
cmp eax, 0xffffffff
jne 0x53c0d9
mov ecx, dword [edi + 0x10]
lea esi, [edi + 0xc]
test ecx, ecx
je 0x53c925
mov ebx, esi
mov eax, ecx
mov edx, dword [ebp - 0x8b4]
jmp 0x53c159
mov ebx, eax
mov eax, dword [eax + 8]
test eax, eax
je 0x53c165
cmp edx, dword [eax + 0x10]
jle 0x53c150
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x53c159
cmp esi, ebx
je 0x53cae0
mov eax, dword [ebp - 0x8b4]
cmp eax, dword [ebx + 0x10]
jl 0x53cae0
movzx ecx, byte [ebx + 0x38]
lea eax, [ebx + 0x14]
mov dword [ebp - 0x8bc], eax
test cl, 4
jne 0x53c370
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0x888]
mov esi, eax
mov dword [ebp - 0x8ac], eax
mov eax, dword [ebx + 0x1c]
sub eax, esi
mov esi, dword [ebp - 0x88c]
sar eax, 2
sub edx, esi
sar edx, 2
cmp eax, edx
je 0x53c6d1
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x40]
mov edi, dword [ebp - 0x8b4]
mov edx, dword [eax]
mov ecx, dword [ecx + edi*4]
mov edx, dword [edx + 0x78]
mov ecx, dword [ecx + 4]
mov dword [esp], eax
mov dword [esp + 0xc], str.define
mov dword [esp + 8], str.Macro_redefined__different_number_of_arguments:
mov dword [esp + 0x10], ecx
lea ecx, [ebp - 0x8a0]
mov dword [esp + 4], ecx
call edx
lea eax, [ebx + 0x24]
mov dword [ebp - 0x8ac], eax
mov ecx, dword [ebp - 0x8bc]
lea eax, [ebp - 0x890]
mov dword [esp], eax
call fcn.0063c130
mov ecx, dword [ebp - 0x8ac]
lea eax, [ebp - 0x880]
sub esp, 4
mov dword [esp], eax
call fcn.0063bb90
mov eax, dword [ebp - 0x870]
mov dword [ebx + 0x34], eax
movzx eax, byte [ebx + 0x38]
movzx edx, byte [ebp - 0x86c]
sub esp, 4
and eax, 0xfffffffe
and edx, 1
or eax, edx
mov byte [ebx + 0x38], al
movzx edx, byte [ebp - 0x86c]
and eax, 0xfffffffd
and edx, 2
or eax, edx
mov byte [ebx + 0x38], al
movzx edx, byte [ebp - 0x86c]
and eax, 0xfffffffb
and edx, 4
or eax, edx
mov byte [ebx + 0x38], al
mov eax, 0xa
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
add eax, 0x20
mov dword [ebp - 0x8d0], eax
mov esi, eax
jmp 0x53c06f
mov edx, dword [edi + 0x74]
mov eax, dword [ebp + 8]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0x78]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x6e03dd
mov dword [esp + 0xc], str.define
mov dword [esp + 8], str.must_be_followed_by_macro_name
mov dword [esp], edx
call ecx
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [edi + 0x4c]
lea ebx, [ebp - 0x868]
mov esi, eax
add eax, 1
mov dword [edi + 0x4c], eax
call fcn.004cb890
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x8d0]
mov dword [esp], ebx
mov dword [ebp - 0x868], eax
lea eax, [ebp - 0x440]
mov ecx, eax
mov ebx, eax
mov dword [ebp - 0x8b0], eax
call fcn.005f4b30
mov ecx, dword [ebp - 0x8c0]
mov dword [ebp - 0x8b4], esi
mov dword [ebp - 0x438], esi
sub esp, 8
mov dword [esp + 4], ebx
mov byte [esp], 0
call fcn.00603f30
mov ebx, eax
mov eax, dword [ebp - 0x43c]
sub esp, 8
lock sub dword [eax - 4], 1
mov esi, dword [edi + 0x44]
mov edx, dword [edi + 0x40]
mov ecx, dword [ebp - 0x8b4]
mov eax, esi
sub eax, edx
sar eax, 2
add ecx, 1
cmp eax, ecx
jb 0x53c37e
mov eax, dword [ebp - 0x8b4]
add ebx, 4
mov dword [edx + eax*4], ebx
jmp 0x53c093
lea eax, [ebx + 0x24]
mov dword [ebp - 0x8ac], eax
jmp 0x53c201
lea ecx, [edi + 0x50]
mov dword [ebp - 0x440], ecx
mov ecx, dword [ebp - 0x8b4]
add ecx, 0x64
cmp eax, ecx
jb 0x53cb8e
jbe 0x53c35a
lea eax, [edx + ecx*4]
mov dword [edi + 0x44], eax
jmp 0x53c35a
mov esi, dword [ebp + 8]
cmp byte [esi + 0x10], 0
jne 0x53c0ac
or byte [ebp - 0x86c], 1
mov dword [ebp - 0x8c8], edi
lea esi, [esi]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x8c8]
mov dword [esp], eax
call fcn.005a62a0
mov edx, dword [ebp - 0x888]
sub edx, dword [ebp - 0x88c]
sar edx, 2
sub esp, 4
test edx, edx
jne 0x53c3f0
cmp eax, 0x29
je 0x53cac4
cmp eax, 0xa2
jne 0x53cb5d
and byte [ebp - 0x86c], 0xfe
call fcn.004cb890
lea ecx, [ebp - 0x440]
mov dword [ebp - 0x868], eax
lea eax, [ebp - 0x868]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8d0]
mov dword [esp], eax
call fcn.005f4b30
mov eax, dword [ebp - 0x43c]
mov edi, dword [eax - 0xc]
mov dword [ebp - 0x8bc], eax
sub esp, 8
test edi, edi
mov ecx, edi
mov dword [ebp - 0x8b0], edi
je 0x53c919
add ecx, eax
mov esi, 0x811c9dc5
movsx edx, byte [eax]
add eax, 1
xor edx, esi
imul esi, edx, 0x1000193
cmp eax, ecx
jne 0x53c454
mov ebx, dword [ebp - 0x8c8]
xor edx, edx
mov eax, esi
mov edi, dword [ebx + 0x24]
div edi
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x8ac], edx
test eax, eax
je 0x53c4af
mov ebx, dword [eax]
mov ecx, dword [ebx + 0x10]
lea esi, [esi]
cmp esi, ecx
je 0x53c606
mov ebx, dword [ebx]
test ebx, ebx
je 0x53c4af
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov eax, ecx
div edi
cmp dword [ebp - 0x8ac], edx
je 0x53c490
mov eax, dword [ebp - 0x8bc]
lock sub dword [eax - 4], 1
mov esi, dword [ebp - 0x8c8]
mov ebx, dword [esi + 0x4c]
lea eax, [ebx + 1]
mov dword [esi + 0x4c], eax
call fcn.004cb890
lea ecx, [ebp - 0x440]
mov dword [ebp - 0x868], eax
lea eax, [ebp - 0x868]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8d0]
mov dword [esp], eax
call fcn.005f4b30
mov ecx, dword [ebp - 0x8c0]
lea eax, [ebp - 0x440]
mov dword [ebp - 0x438], ebx
sub esp, 8
mov dword [esp + 4], eax
mov byte [esp], 0
call fcn.00603f30
mov edi, eax
mov eax, dword [ebp - 0x43c]
sub esp, 8
lock sub dword [eax - 4], 1
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x40]
lea esi, [ebx + 1]
mov eax, ecx
sub eax, edx
sar eax, 2
cmp eax, esi
jb 0x53c6a0
add edi, 4
mov dword [edx + ebx*4], edi
mov esi, dword [ebp - 0x888]
mov ecx, dword [ebp - 0x88c]
mov dword [ebp - 0x440], ebx
mov edx, esi
sub edx, ecx
sar edx, 2
test edx, edx
je 0x53c582
xor eax, eax
cmp dword [ecx], ebx
jne 0x53c579
jmp 0x53c668
cmp dword [ecx + eax*4], ebx
je 0x53c668
add eax, 1
cmp eax, edx
nop
jne 0x53c570
cmp dword [ebp - 0x884], esi
je 0x53cbc0
test esi, esi
je 0x53c594
mov dword [esi], ebx
add esi, 4
mov dword [ebp - 0x888], esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x8c8]
mov dword [esp], eax
call fcn.005a62a0
sub esp, 4
cmp eax, 0x2c
je 0x53c3c0
cmp eax, 0x29
mov edi, dword [ebp - 0x8c8]
mov dword [ebp - 0x8ac], eax
je 0x53caca
mov edx, dword [edi + 0x74]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0x78]
mov dword [esp + 0x10], 0x6e03dd
mov dword [esp + 0xc], str.define
mov dword [esp + 8], str.missing_parenthesis
mov eax, dword [ebp + 8]
mov dword [esp], edx
mov dword [esp + 4], eax
call ecx
mov eax, dword [ebp - 0x8ac]
jmp 0x53c277
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x8b0]
mov edx, dword [eax - 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8bc]
cmp edx, ecx
cmovbe ecx, edx
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [ebp - 0x8b8], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x53c498
mov edx, dword [ebp - 0x8b8]
cmp dword [ebp - 0x8b0], edx
jne 0x53c498
mov eax, dword [ebp - 0x8bc]
lock sub dword [eax - 4], 1
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x53c542
jmp 0x53c4ba
mov eax, dword [ebp - 0x8c8]
mov edi, dword [ebp + 8]
mov eax, dword [eax + 0x74]
mov edx, dword [eax]
mov edx, dword [edx + 0x78]
mov dword [esp + 0x10], 0x6e03dd
mov dword [esp + 0xc], str.define
mov dword [esp + 8], str.duplicate_macro_parameter
mov dword [esp + 4], edi
mov dword [esp], eax
call edx
jmp 0x53c59d
mov esi, dword [ebp - 0x8c8]
add esi, 0x50
mov dword [ebp - 0x440], esi
lea esi, [ebx + 0x64]
cmp eax, esi
jb 0x53cb1f
jbe 0x53c53c
lea eax, [edx + esi*4]
mov esi, dword [ebp - 0x8c8]
mov dword [esi + 0x44], eax
jmp 0x53c53c
xor cl, byte [ebp - 0x86c]
and ecx, 1
jne 0x53c1be
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x8ac]
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x53c737
mov ecx, dword [edi + 0x40]
mov esi, dword [ebp - 0x8b4]
mov eax, dword [edi + 0x74]
mov ecx, dword [ecx + esi*4]
mov edx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [edx + 0x78]
mov dword [esp + 0xc], str.define
mov dword [esp + 8], str.Macro_redefined__different_argument_names:
mov dword [esp + 0x10], ecx
lea ecx, [ebp - 0x8a0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call edx
lea eax, [ebx + 0x24]
mov dword [ebp - 0x8ac], eax
lea eax, [ebp - 0x440]
mov dword [ebp - 0x8b0], eax
lea eax, [ebp - 0x868]
mov dword [ebx + 0x34], 0
mov dword [ebp - 0x870], 0
mov dword [ebp - 0x8b8], eax
lea esi, [esi]
mov eax, dword [edi + 0x74]
mov esi, dword [ebp - 0x8b8]
mov ecx, dword [ebp - 0x8ac]
mov byte [ebp - 0x858], 0
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [ebp - 0x850], 0
mov dword [ebp - 0x84c], 0
mov dword [ebp - 0x868], 0
mov dword [ebp - 0x864], 0
mov dword [ebp - 0x860], 0
mov dword [ebp - 0x85c], 0
mov byte [ebp - 0x848], 0
mov byte [ebp - 0x430], 0
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 0
mov byte [ebp - 0x420], 0
call fcn.0053d940
mov edx, dword [ebp - 0x8b0]
lea ecx, [ebp - 0x880]
mov esi, eax
mov eax, dword [edi + 0x74]
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0053d940
sub esp, 8
cmp esi, eax
jne 0x53c855
movzx eax, byte [ebp - 0x430]
cmp byte [ebp - 0x858], al
je 0x53c894
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x40]
mov edi, dword [ebp - 0x8b4]
mov edx, dword [eax]
mov ecx, dword [ecx + edi*4]
mov edx, dword [edx + 0x78]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xc], str.define
mov dword [esp + 8], str.Macro_redefined__different_substitutions:
mov dword [esp], eax
mov dword [esp + 0x10], ecx
lea ecx, [ebp - 0x8a0]
mov dword [esp + 4], ecx
call edx
jmp 0x53c201
mov eax, dword [ebp - 0x428]
cmp dword [ebp - 0x850], eax
jne 0x53c855
fld qword [ebp - 0x850]
fst qword [ebp - 0x8c8]
fld qword [ebp - 0x428]
fst qword [ebp - 0x8d0]
fxch st(1)
fucompi st(1)
fstp st(0)
jp 0x53c855
jne 0x53c855
mov ecx, dword [ebp - 0x8c4]
mov eax, dword [ebp - 0x8c8]
xor ecx, dword [ebp - 0x8cc]
xor eax, dword [ebp - 0x8d0]
or ecx, eax
jne 0x53c855
lea eax, [ebp - 0x420]
mov dword [esp + 4], eax
lea eax, [ebp - 0x848]
mov dword [esp + 8], 0x400
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x53c855
test esi, esi
jg 0x53c770
jmp 0x53c201
mov esi, 0x811c9dc5
nop
jmp 0x53c466
mov edx, esi
mov ecx, dword [edi + 4]
mov dword [esp], 0x3c
mov dword [ebp - 0x8ac], edx
call fcn.004cba30
mov edx, dword [ebp - 0x8ac]
sub esp, 4
test eax, eax
mov ebx, eax
je 0x53c9c0
mov eax, dword [ebp - 0x8b4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], eax
mov dword [ebp - 0x8ac], edx
call fcn.004cb890
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x14], eax
call fcn.004cb890
mov edx, dword [ebp - 0x8ac]
and byte [ebx + 0x38], 0xf8
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x34], 0
lea eax, [ebx + 0x10]
lea ecx, [edi + 4]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.006425f0
mov ecx, edx
sub esp, 8
test ecx, ecx
mov edx, eax
je 0x53ca04
test edx, edx
mov eax, 1
je 0x53cccc
mov dword [esp + 0xc], esi
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0064c8a0
mov edx, ebx
add dword [edi + 0x1c], 1
lea eax, [ebp - 0x890]
lea ecx, [edx + 0x14]
mov dword [esp], eax
lea edi, [ebp - 0x880]
mov dword [ebp - 0x8ac], edx
call fcn.0063c130
mov edx, dword [ebp - 0x8ac]
lea eax, [edx + 0x24]
sub esp, 4
cmp edi, eax
je 0x53ca77
mov eax, dword [ebp - 0x878]
mov ebx, dword [ebp - 0x87c]
mov ecx, dword [edx + 0x30]
mov edi, eax
mov dword [ebp - 0x8ac], eax
mov eax, dword [edx + 0x28]
sub edi, ebx
sub ecx, eax
cmp edi, ecx
ja 0x53cc1b
mov ecx, dword [edx + 0x2c]
mov dword [ebp - 0x8b0], ecx
sub ecx, eax
cmp edi, ecx
ja 0x53cbdc
test edi, edi
jne 0x53cca8
mov edi, eax
mov dword [edx + 0x2c], edi
mov eax, dword [ebp - 0x870]
mov dword [edx + 0x34], eax
movzx eax, byte [edx + 0x38]
movzx ecx, byte [ebp - 0x86c]
and eax, 0xfffffffe
and ecx, 1
or eax, ecx
mov byte [edx + 0x38], al
movzx ecx, byte [ebp - 0x86c]
and eax, 0xfffffffd
and ecx, 2
or eax, ecx
mov byte [edx + 0x38], al
movzx ecx, byte [ebp - 0x86c]
and eax, 0xfffffffb
and ecx, 4
or eax, ecx
mov byte [edx + 0x38], al
mov eax, 0xa
jmp 0x53c277
mov edi, dword [ebp - 0x8c8]
mov eax, dword [ebp + 8]
mov ecx, edi
mov dword [esp], eax
call fcn.005a62a0
sub esp, 4
jmp 0x53c0ac
mov edx, esi
mov eax, dword [ebp - 0x8b4]
jmp 0x53caf9
mov edx, ecx
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x53cb03
cmp eax, dword [ecx + 0x10]
jle 0x53caf0
mov ecx, dword [ecx + 0xc]
jmp 0x53caf5
cmp edx, esi
je 0x53c927
mov eax, dword [ebp - 0x8b4]
cmp eax, dword [edx + 0x10]
jl 0x53c927
jmp 0x53ca04
mov edx, dword [ebp - 0x8c8]
sub esi, eax
mov dword [esp], ecx
mov dword [esp + 4], esi
add edx, 0x3c
mov dword [ebp - 0x8ac], edx
mov ecx, dword [ebp - 0x8ac]
lea edx, [ebp - 0x440]
mov dword [esp + 8], edx
call fcn.006343f0
mov edx, dword [ebp - 0x8c8]
mov edx, dword [edx + 0x40]
sub esp, 0xc
jmp 0x53c53c
mov edi, dword [ebp - 0x8c8]
mov dword [ebp - 0x8ac], eax
mov edx, dword [edi + 0x74]
mov ecx, dword [edx]
mov ecx, dword [ecx + 0x78]
mov dword [esp + 0x10], 0x6e03dd
mov dword [esp + 0xc], str.define
mov dword [esp + 8], str.bad_argument
jmp 0x53c5ef
lea edx, [edi + 0x3c]
sub ecx, eax
mov dword [ebp - 0x8ac], edx
mov edx, dword [ebp - 0x8b0]
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x8ac]
mov dword [esp], esi
mov dword [esp + 8], edx
call fcn.006343f0
mov edx, dword [edi + 0x40]
sub esp, 0xc
jmp 0x53c35a
lea eax, [ebp - 0x440]
mov dword [esp], eax
lea ecx, [ebp - 0x890]
call fcn.0063bf90
sub esp, 4
jmp 0x53c59d
add ecx, ebx
mov esi, ecx
sub esi, ebx
jne 0x53cc71
mov esi, dword [ebp - 0x8ac]
mov ebx, dword [ebp - 0x8b0]
cmp ecx, esi
je 0x53cce5
lea esi, [esi]
test ebx, ebx
je 0x53cc09
movzx eax, byte [ecx]
mov byte [ebx], al
add ecx, 1
add ebx, 1
cmp ecx, esi
jne 0x53cc00
add edi, dword [edx + 0x28]
jmp 0x53ca74
mov ecx, dword [edx + 0x24]
mov dword [esp], edi
mov dword [ebp - 0x8b0], edx
call fcn.004cba30
mov edx, dword [ebp - 0x8b0]
sub esp, 4
mov ecx, eax
cmp ebx, dword [ebp - 0x8ac]
je 0x53cc64
mov esi, dword [ebp - 0x8ac]
mov dword [ebp - 0x8ac], eax
test ecx, ecx
je 0x53cc54
movzx eax, byte [ebx]
mov byte [ecx], al
add ebx, 1
add ecx, 1
cmp ebx, esi
jne 0x53cc4b
mov eax, dword [ebp - 0x8ac]
add edi, eax
mov dword [edx + 0x28], eax
mov dword [edx + 0x30], edi
jmp 0x53ca74
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x8ac], edx
call sub.msvcrt.dll_memmove
mov edx, dword [ebp - 0x8ac]
mov esi, dword [ebp - 0x878]
mov ebx, dword [edx + 0x2c]
mov eax, dword [edx + 0x28]
mov ecx, ebx
sub ecx, eax
add ecx, dword [ebp - 0x87c]
jmp 0x53cbf4
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x8ac], edx
call sub.msvcrt.dll_memmove
mov edx, dword [ebp - 0x8ac]
add edi, dword [edx + 0x28]
jmp 0x53ca74
cmp esi, ecx
je 0x53c9ea
mov eax, dword [ecx + 0x10]
cmp dword [ebx + 0x10], eax
setl al
movzx eax, al
jmp 0x53c9ea
add edi, eax
jmp 0x53ca74