Function at 0x66478c80
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov edx, dword [eax + 4]
lea ecx, [ebx + 0x24]
mov eax, dword [eax]
test ebx, ebx
je 0x66479180
mov edi, dword [ebx]
test edi, edi
jle 0x66479180
cmp dword [ebx + 4], 0xeffff
jle 0x66479180
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
call dword [0x66a21ef4]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0xc]
mov ecx, esi
mov edi, dword [0x66a200dc]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 0
mov dword [esp + 0x24], eax
mov eax, dword [ebp]
mov eax, dword [eax + 4]
add eax, 0x38
mov dword [esp], eax
call edi
mov eax, dword [esi]
sub esp, 8
add eax, dword [eax + 0xc]
mov edx, eax
mov eax, dword [ebp]
mov dword [esp + 0x1c], edx
mov ecx, dword [eax + 4]
add eax, dword [eax + 0xc]
mov dword [esp], edx
mov dword [esp + 4], eax
lea ebp, [ecx + ecx]
mov dword [esp + 8], ebp
call fcn.6678ef40
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x40], 0x310030
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
lea eax, [edx + ebp]
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
movzx edx, byte [esp + ecx + 0x24]
mov ebp, edx
shr edx, 4
and ebp, 0xf
and edx, 0xf
movzx ebp, word [esp + ebp*2 + 0x40]
movzx edx, word [esp + edx*2 + 0x40]
mov word [eax + ecx*4], bp
mov word [eax + ecx*4 + 2], dx
add ecx, 1
cmp ecx, 4
jne 0x66478d86
mov dword [esp + 0x40], 0x310030
xor ecx, ecx
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
movzx edx, byte [esp + ecx + 0x28]
mov ebp, edx
shr edx, 4
and ebp, 0xf
and edx, 0xf
movzx ebp, word [esp + ebp*2 + 0x40]
movzx edx, word [esp + edx*2 + 0x40]
mov word [eax + ecx*4 + 0x10], bp
mov word [eax + ecx*4 + 0x12], dx
add ecx, 1
cmp ecx, 4
jne 0x66478df3
mov dword [esp + 0x40], 0x310030
xor ecx, ecx
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
movzx edx, byte [esp + ecx + 0x2c]
mov ebp, edx
shr edx, 4
and ebp, 0xf
and edx, 0xf
movzx ebp, word [esp + ebp*2 + 0x40]
movzx edx, word [esp + edx*2 + 0x40]
mov word [eax + ecx*4 + 0x20], bp
mov word [eax + ecx*4 + 0x22], dx
add ecx, 1
cmp ecx, 4
jne 0x66478e61
mov dword [esp + 0x40], 0x310030
xor ecx, ecx
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
nop
movzx edx, byte [esp + ecx + 0x38]
mov ebp, edx
shr edx, 4
and ebp, 0xf
and edx, 0xf
movzx ebp, word [esp + ebp*2 + 0x40]
movzx edx, word [esp + edx*2 + 0x40]
mov word [eax + ecx*4 + 0x30], bp
mov word [eax + ecx*4 + 0x32], dx
add ecx, 1
cmp ecx, 8
jne 0x66478ed0
mov dword [esp + 0x40], 0x310030
xor ecx, ecx
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
movzx edx, byte [esp + ecx + 0x30]
mov ebp, edx
shr edx, 4
and ebp, 0xf
and edx, 0xf
movzx ebp, word [esp + ebp*2 + 0x40]
movzx edx, word [esp + edx*2 + 0x40]
mov word [eax + ecx*4 + 0x50], bp
mov word [eax + ecx*4 + 0x52], dx
add ecx, 1
cmp ecx, 4
jne 0x66478f3e
mov dword [esp + 0x40], 0x310030
xor ecx, ecx
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
movzx edx, byte [esp + ecx + 0x34]
mov ebp, edx
shr edx, 4
and ebp, 0xf
and edx, 0xf
movzx ebp, word [esp + ebp*2 + 0x40]
movzx edx, word [esp + edx*2 + 0x40]
mov word [eax + ecx*4 + 0x60], bp
mov word [eax + ecx*4 + 0x62], dx
add ecx, 1
cmp ecx, 4
jne 0x66478fac
mov eax, dword [ebx]
test eax, eax
jle 0x66478fe7
cmp dword [ebx + 4], 0xf0002
je 0x66478ff8
add esp, 0x6c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0x3c]
cmp byte [ebx + 0x40], 1
mov ebp, 0x30
lea ecx, [esp + 0x38]
sbb bp, 0xffff
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 4], 0
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov eax, dword [eax + 4]
add eax, 0x11
mov dword [esp], eax
call edi
mov eax, dword [esi]
sub esp, 8
mov edx, dword [esp + 0x38]
mov edi, dword [eax + 4]
add eax, dword [eax + 0xc]
mov ebx, dword [edx + 0xc]
add edi, edi
mov dword [esp + 4], eax
mov dword [esp + 8], edi
add ebx, edx
mov dword [esp], ebx
call fcn.6678ef40
mov dword [esp + 0x40], 0x310030
lea edx, [ebx + edi]
xor ecx, ecx
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
movzx eax, byte [esp + ecx + 0x30]
mov ebx, eax
shr eax, 4
and ebx, 0xf
and eax, 0xf
movzx ebx, word [esp + ebx*2 + 0x40]
movzx eax, word [esp + eax*2 + 0x40]
mov word [edx + ecx*4], bx
mov word [edx + ecx*4 + 2], ax
add ecx, 1
cmp ecx, 4
jne 0x66479097
mov dword [esp + 0x40], 0x310030
xor ecx, ecx
mov dword [esp + 0x44], 0x330032
mov dword [esp + 0x48], 0x350034
mov dword [esp + 0x4c], 0x370036
mov dword [esp + 0x50], 0x390038
mov dword [esp + 0x54], 0x620061
mov dword [esp + 0x58], 0x640063
mov dword [esp + 0x5c], 0x660065
movzx eax, byte [esp + ecx + 0x34]
mov ebx, eax
shr eax, 4
and ebx, 0xf
and eax, 0xf
movzx ebx, word [esp + ebx*2 + 0x40]
movzx eax, word [esp + eax*2 + 0x40]
mov word [edx + ecx*4 + 0x10], bx
mov word [edx + ecx*4 + 0x12], ax
add ecx, 1
cmp ecx, 4
jne 0x66479104
mov word [edx + 0x20], bp
mov eax, dword [esi]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov dword [esi], edx
mov edx, dword [eax]
test edx, edx
je 0x66479159
cmp edx, 0xffffffff
je 0x66478fe7
lock sub dword [eax], 1
jne 0x66478fe7
mov eax, dword [esp + 0x38]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x66a1f9d8]
add esp, 0x6c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
call dword [0x66a21ef4]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x3c], edx
jmp 0x66478ce3