Function at 0x489450
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push ebx
sub esp, 0x2c0
mov edi, 1
mov ecx, dword [0x543b10]
xor ecx, ebp
mov esi, dword [ebp + 0x14]
xor edx, edx
test esi, esi
mov dword [ebp - 0x10], ecx
mov ecx, 0
setne dl
mov ebx, dword [ebp + 8]
dec edx
mov dword [ebp - 0x1ac], edx
mov eax, ebx
mov edx, 2
mov dword [ebp - 0x20], 0x5453494c
mov dword [ebp - 0x1c], 0x45524944
mov dword [ebp - 0x18], 0x44455443
mov byte [ebp - 0x14], cl
mov dword [ebp - 0x1a8], ecx
mov dword [ebp - 0x1a4], ecx
mov dword [ebp - 0x1a0], edi
mov dword [ebp - 0x19c], edi
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x190], ecx
mov dword [ebp - 0x18c], ecx
call fcn.00488d80
test eax, eax
je 0x489598
test esi, esi
jne 0x489578
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x489b80
test byte [edx + 0x44], 2
je 0x489532
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x489512
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movzx edx, byte [ebx + 0x1ae]
and edx, 0x10
movzx ecx, byte [ebx + 0x1a4]
push eax
shr edx, 1
and ecx, 7
push eax
or ecx, edx
push ecx
push 0xffffffffffffffff
push ebx
call fcn.004865b0
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov edx, dword [ebx + 0x94]
test edx, edx
je 0x4895a6
mov byte [edx + 0x1f], 1
mov edi, dword [ebx + 0x74]
xor edx, edx
mov byte [ebp - 0x1b0], dl
mov byte [ebp - 0x278], dl
mov dword [ebp - 0x2c0], edi
mov dword [ebp - 0x288], edx
mov edx, 0x28
xor ecx, ecx
mov dword [ebp + edx - 0x2b4], ecx
mov dword [ebp + edx - 0x2b8], ecx
mov dword [ebp + edx - 0x2bc], ecx
mov dword [ebp + edx - 0x2c0], ecx
mov dword [ebp + edx - 0x2c4], ecx
sub edx, 0x14
jne 0x4895ca
mov dword [ebp - 0x2ac], 0
lea edx, [ebp - 0x2b0]
mov dword [ebx + 0x74], edx
mov edx, dword [ebx + 0x124]
test esi, esi
je 0x489620
cmp edx, 0xfffffffb
jne 0x489620
mov dword [ebp - 0x280], 0xfffffffa
jmp 0x489626
mov dword [ebp - 0x280], edx
mov dword [ebp - 0x27c], 0
lea ecx, [ebp - 0x20]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x48964a
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x489635
dec eax
push 0xc8
push eax
inc word [ebx + 0x18a]
lea esi, [ebp - 0x278]
push esi
lea edi, [ebp - 0x27c]
push edi
lea edx, [ebp - 0x1ac]
push edx
push ecx
movzx edx, byte [esi]
lea ecx, [ebp - 0x280]
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esi], 0
push dword [ecx]
mov dword [esi - 0x4c], edx
call dword [ecx + 0xc]
add esp, 0x20
cmp byte [ebp - 0x278], 0
je 0x489698
mov edi, 1
jmp 0x4896a8
mov edx, dword [ebp - 0x2c4]
xor eax, eax
mov byte [ebp - 0x278], dl
xor edi, edi
mov edx, dword [ebp - 0x2c0]
mov dword [ebx + 0x74], edx
dec word [ebx + 0x18a]
mov edx, dword [ebp - 0x2ac]
mov esi, dword [ebp - 0x27c]
test edx, edx
jne 0x489d11
mov eax, ebx
mov edx, 2
call fcn.00489160
mov edx, dword [ebp + 0xc]
cmp dword [edx + 8], 0x3f
je 0x489cfa
cmp dword [ebp + 0x10], 0
je 0x4896f2
mov dword [ebx + 0x60], 0
test esi, esi
jne 0x4897db
movzx edx, byte [ebx + 0x1ad]
test edi, edi
je 0x4897b0
test dl, 0x40
je 0x4897b0
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x489ba6
test byte [edx + 0x44], 2
je 0x489765
mov ecx, 0xff
mov dword [edx + 0x38], ecx
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x3c], ecx
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x489740
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
mov eax, 0xff
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movzx ecx, byte [ebx + 0x1ae]
mov edx, 0xff
and ecx, 0x10
movzx esi, byte [ebx + 0x1a4]
push edx
shr ecx, 1
and esi, 7
push edx
or esi, ecx
push esi
push 0xffffffffffffffff
push ebx
call fcn.004865b0
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
and edx, 0xffffffef
mov byte [ebx + 0x1ad], dl
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
test byte [ebx + 0x1ad], 0x40
je 0x489935
cmp esi, 0xfffffffe
jge 0x48988f
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x489bd1
test byte [edx + 0x44], 2
je 0x489844
mov ecx, 0x110
mov dword [edx + 0x38], ecx
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x3c], ecx
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x48981f
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
mov eax, 0x110
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movzx ecx, byte [ebx + 0x1ae]
mov edx, 0x110
and ecx, 0x10
movzx esi, byte [ebx + 0x1a4]
push edx
shr ecx, 1
and esi, 7
push edx
or esi, ecx
push esi
push 0xffffffffffffffff
push ebx
call fcn.004865b0
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
test edi, edi
jne 0x489935
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x489bfc
test byte [edx + 0x44], 2
je 0x4898ea
mov ecx, 0x111
mov dword [edx + 0x38], ecx
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x3c], ecx
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x4898c5
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
mov eax, 0x111
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movzx ecx, byte [ebx + 0x1ae]
mov edx, 0x111
and ecx, 0x10
movzx esi, byte [ebx + 0x1a4]
push edx
shr ecx, 1
and esi, 7
push edx
or esi, ecx
push esi
push 0xffffffffffffffff
push ebx
call fcn.004865b0
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
test edi, edi
je 0x489a23
cmp dword [ebx + 0x114], 0
jne 0x489a23
lea ecx, [ebp - 0x278]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x489967
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x489952
dec eax
mov dword [ebx + 0x114], eax
lea edx, [ebx + 0x9c]
push edx
push 0
inc eax
push eax
call fcn.004875a0
add esp, 0xc
test eax, eax
je 0x489a17
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x489c2b
test byte [edx + 0x44], 2
je 0x4899d1
mov dword [edx + 0x38], eax
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x4899b1
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movzx edx, byte [ebx + 0x1ae]
and edx, 0x10
movzx ecx, byte [ebx + 0x1a4]
push eax
shr edx, 1
and ecx, 7
push eax
or ecx, edx
push ecx
push 0xffffffffffffffff
push ebx
call fcn.004865b0
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov dword [ebp - 0x284], 1
jmp 0x489a2d
mov dword [ebp - 0x284], 0
test edi, edi
je 0x489aea
mov ecx, dword [ebx + 0x9c]
mov edx, dword [ebx + 0x114]
mov dword [ebp - 0x2c0], 0
cmp byte [ebp - 0x278], 0
je 0x489a81
mov ebx, dword [ebp - 0x2c0]
cmp ebx, edx
jge 0x489cf2
movzx eax, byte [ebp + ebx - 0x278]
mov byte [ebx + ecx], al
inc ebx
cmp byte [ebp + ebx - 0x278], 0
jne 0x489a5a
mov dword [ebp - 0x2c0], ebx
mov ebx, dword [ebp + 8]
cmp edx, dword [ebp - 0x2c0]
jle 0x489ab8
mov eax, edx
sub eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2b8], eax
cmp eax, 0x60
jle 0x489c80
mov eax, dword [ebp - 0x2c0]
add ecx, eax
inc eax
sub edx, eax
inc edx
push edx
push 0x20
push ecx
call fcn.004ca8b0
add esp, 0xc
xor edx, edx
cmp edx, dword [ebp - 0x284]
mov eax, dword [ebx + 0x114]
adc eax, 0
mov ecx, dword [ebx + 0x9c]
shl edi, 4
mov byte [ecx + eax], dl
movzx edx, byte [ebx + 0x1ad]
or edx, 8
and edx, 0xffffffef
or edx, edi
mov byte [ebx + 0x1ad], dl
mov edx, dword [ebx + 0x20]
test edx, edx
je 0x489c55
test byte [edx + 0x44], 2
je 0x489b38
mov dword [edx + 0x38], 0x7f
mov edx, dword [ebx + 0x20]
mov dword [edx + 0x3c], esi
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x489b17
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebx + 0x7c], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
mov eax, 0x7f
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movzx edx, byte [ebx + 0x1ae]
and edx, 0x10
movzx ecx, byte [ebx + 0x1a4]
push esi
shr edx, 1
and ecx, 7
push 0x7f
or ecx, edx
push ecx
push 0xffffffffffffffff
push ebx
call fcn.004865b0
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
call fcn.004cf95b
push ebx
push eax
push eax
push 1
call fcn.0047ead0
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
jmp 0x48952a
push ebx
mov eax, 0xff
push eax
push eax
push 1
call fcn.0047ead0
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
jmp 0x48952a
push ebx
mov eax, 0x110
push eax
push eax
push 1
call fcn.0047ead0
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
jmp 0x48952a
push ebx
mov eax, 0x111
push eax
push eax
push 1
call fcn.0047ead0
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
jmp 0x48952a
push ebx
push eax
push eax
push 1
call fcn.0047ead0
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
jmp 0x48952a
push ebx
push esi
push 0x7f
push 1
call fcn.0047ead0
add esp, 0x10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], 0
xor ecx, ebp
cmp ecx, dword [0x543b10]
jne 0x489b7b
jmp 0x48952a
mov edx, eax
shr edx, 1
mov dword [ebp - 0x2b4], edx
je 0x489ceb
mov eax, dword [ebp - 0x2c0]
xor edx, edx
mov dword [ebp - 0x2c4], edi
mov edi, dword [ebp - 0x2b4]
add eax, ecx
mov dword [ebp - 0x2bc], eax
mov eax, 0x20
mov ebx, dword [ebp - 0x2bc]
mov byte [ebx + edx*2], al
mov byte [ebx + edx*2 + 1], al
inc edx
cmp edx, edi
jb 0x489cb3
mov edi, dword [ebp - 0x2c4]
lea eax, [edx + edx + 1]
mov ebx, dword [ebp + 8]
lea edx, [eax - 1]
cmp edx, dword [ebp - 0x2b8]
jae 0x489ab8
add ecx, dword [ebp - 0x2c0]
mov byte [eax + ecx - 1], 0x20
jmp 0x489ab8
mov eax, 1
jmp 0x489ccc
mov ebx, dword [ebp + 8]
jmp 0x489ab8
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x10]
test edx, edx
je 0x4896e5
or dword [edx + 0xc], 0x40
jmp 0x4896e5
push edx
call fcn.00487660
add esp, 4
mov dword [ebp - 0x2ac], 0
jmp 0x4896cc