Function at 0x48d940
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x6c
push ebx
mov ebx, dword [esp + 0x80]
push ebp
push esi
mov esi, dword [esp + 0x7c]
push edi
push 0
push dword [ebx]
mov ebp, dword [esi + 0x160]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
lea edi, [ebp + 0x14]
push edi
push esi
call fcn.0048a950
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x48d9cb
push dword [ebx]
lea eax, [ebp + 0x50]
push eax
call fcn.0048c1b0
add esp, 8
test eax, eax
je 0x48da2c
push 0x18
push eax
push edi
push esi
call fcn.0048a950
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x48da2c
cmp byte [esi + 0xe8], 0
je 0x48d9cb
push eax
push esi
call fcn.0048d190
add esp, 8
test eax, eax
je 0x48da2c
mov eax, dword [esp + 0x18]
push dword [esi + 0x184]
mov ebp, dword [esp + 0x88]
push dword [esi + 0x178]
mov ebx, dword [eax + 0xc]
push dword [esp + 0x90]
mov eax, dword [ebp + 0x24]
push ebp
mov dword [esp + 0x3c], ebx
call eax
mov edi, dword [esi + 0x178]
mov ecx, eax
mov dword [esp + 0x34], ecx
add esp, 0x10
add ecx, ebx
cmp ecx, edi
jle 0x48da59
mov eax, dword [esi + 0x10]
add ecx, 0x10
mov dword [esi + 0x178], ecx
shl ecx, 4
push ecx
push dword [esi + 0x184]
call eax
add esp, 8
test eax, eax
jne 0x48da39
mov dword [esi + 0x178], edi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6c
ret
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x184], eax
cmp ecx, edi
jle 0x48da59
push eax
mov eax, dword [ebp + 0x24]
push ecx
push dword [esp + 0x90]
push ebp
call eax
add esp, 0x10
mov edx, dword [esi + 0x184]
xor ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x24], ecx
jle 0x48dbf0
mov dword [esp + 0x20], ecx
jmp 0x48da80
mov eax, dword [esi + 0x184]
mov edi, dword [eax + ecx]
mov eax, dword [ebp + 0x1c]
push edi
push ebp
call eax
add eax, edi
push eax
push edi
push ebp
push esi
call fcn.00489ca0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x48da2c
mov eax, dword [edi]
cmp word [eax - 2], 0
jne 0x48dca3
mov edx, dword [esp + 0x14]
mov ecx, 1
mov word [eax - 2], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [edi]
mov dword [edx + ecx*4], eax
inc ecx
mov edx, dword [esp + 0x20]
add edx, dword [esi + 0x184]
mov dword [esp + 0x10], ecx
cmp byte [edx + 0xc], 0
jne 0x48db50
cmp byte [edi + 8], 0
mov byte [esp + 0x30], 1
je 0x48db18
xor eax, eax
test ebx, ebx
jle 0x48db18
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x14]
cmp edi, dword [ecx]
je 0x48db02
inc eax
add ecx, 0xc
cmp eax, ebx
jl 0x48daf4
jmp 0x48db18
mov ebx, dword [esp + 0x18]
lea eax, [eax + eax*2]
mov ecx, dword [ebx + 0x14]
mov ebx, dword [esp + 0x2c]
mov al, byte [ecx + eax*4 + 4]
mov byte [esp + 0x30], al
lea eax, [esi + 0x19c]
push eax
push dword [edx + 8]
push dword [edx + 4]
push dword [esp + 0x3c]
push ebp
push esi
call fcn.0048d8c0
add esp, 0x18
test eax, eax
jne 0x48e380
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
lea ecx, [eax + edx*4]
mov eax, dword [esi + 0x1ac]
mov dword [ecx], eax
jmp 0x48db7c
push dword [edx + 8]
lea eax, [esi + 0x19c]
push dword [edx + 4]
push ebp
push eax
call fcn.0048c810
mov edx, dword [esp + 0x20]
add esp, 0x10
mov ecx, dword [esp + 0x14]
mov dword [ecx + edx*4], eax
lea ecx, [ecx + edx*4]
test eax, eax
je 0x48da2c
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1ac], eax
mov eax, dword [edi + 4]
test eax, eax
je 0x48dbc9
cmp byte [edi + 9], 0
je 0x48dbb7
push dword [esp + 0x90]
push dword [ecx]
push edi
push eax
push esi
call fcn.004858a0
add esp, 0x14
test eax, eax
jne 0x48e380
dec dword [esp + 0x10]
jmp 0x48dbce
mov eax, dword [edi]
mov ecx, 2
inc edx
inc dword [esp + 0x1c]
mov word [eax - 2], cx
jmp 0x48dbca
inc edx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
inc eax
add ecx, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
cmp eax, dword [esp + 0x24]
jl 0x48da80
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov dword [esi + 0x17c], ebp
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x48dcd8
mov ecx, dword [ecx]
cmp word [ecx - 2], 0
je 0x48dcd8
xor eax, eax
test ebp, ebp
jle 0x48dc30
lea esp, [esp]
cmp dword [edx + eax*4], ecx
je 0x48dccd
add eax, 2
cmp eax, ebp
jl 0x48dc20
mov eax, dword [esp + 0x18]
xor edi, edi
test ebx, ebx
jle 0x48dd41
xor ebx, ebx
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + ebx]
add ecx, ebx
mov edx, dword [eax]
cmp word [edx - 2], 0
jne 0x48dc8f
mov ebp, dword [ecx + 8]
mov dword [esp + 0x38], ebp
test ebp, ebp
je 0x48dc8b
mov ebp, dword [eax + 4]
test ebp, ebp
je 0x48dd16
cmp byte [eax + 9], 0
je 0x48dce7
push dword [esp + 0x90]
push dword [esp + 0x3c]
push eax
push ebp
push esi
call fcn.004858a0
add esp, 0x14
test eax, eax
jne 0x48e380
mov ebp, dword [esp + 0x10]
inc edi
add ebx, 0xc
cmp edi, dword [esp + 0x2c]
jge 0x48dd41
mov eax, dword [esp + 0x18]
jmp 0x48dc40
cmp ebp, dword [esi + 0x90]
jne 0x48dcc0
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x184]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [esi + 0x11c], eax
pop edi
pop esi
pop ebp
mov eax, 8
pop ebx
add esp, 0x6c
ret
mov dword [esi + 0x180], eax
jmp 0x48dc30
mov dword [esi + 0x180], 0xffffffff
jmp 0x48dc34
mov ebp, dword [esp + 0x10]
mov eax, 2
inc dword [esp + 0x1c]
mov word [edx - 2], ax
mov eax, dword [ecx]
mov edx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [edx + ebp*4], eax
mov eax, dword [ecx + 8]
mov dword [edx + ebp*4 + 4], eax
add ebp, 2
mov dword [esp + 0x10], ebp
jmp 0x48dc8f
mov ebp, dword [esp + 0x10]
mov eax, 1
mov word [edx - 2], ax
mov eax, dword [ecx]
mov edx, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [edx + ebp*4], eax
mov eax, dword [ecx + 8]
mov dword [edx + ebp*4 + 4], eax
add ebp, 2
mov dword [esp + 0x10], ebp
jmp 0x48dc8f
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [eax + ebp*4], 0
cmp dword [esp + 0x1c], edx
je 0x48e1b5
mov eax, dword [esi + 0x18c]
mov edi, 1
mov bl, byte [esi + 0x190]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
movzx ecx, bl
add eax, eax
shl edi, cl
sar eax, cl
mov dword [esp + 0x28], edi
test eax, eax
je 0x48ddf5
mov ebp, dword [esp + 0x1c]
mov cl, bl
lea esp, [esp]
mov eax, ebp
sar eax, cl
inc cl
test eax, eax
jne 0x48dd90
mov ebp, dword [esp + 0x10]
mov byte [esi + 0x190], cl
cmp cl, 3
jae 0x48ddb0
mov byte [esi + 0x190], 3
mov cl, byte [esi + 0x190]
mov edi, 1
shl edi, cl
mov dword [esp + 0x28], edi
lea eax, [edi + edi*2]
shl eax, 2
push eax
push dword [esi + 0x188]
mov eax, dword [esi + 0x10]
call eax
add esp, 8
test eax, eax
jne 0x48dded
pop edi
mov byte [esi + 0x190], bl
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov dword [esi + 0x188], eax
jmp 0x48ddfd
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x48de29
or eax, 0xffffffff
mov edx, edi
mov dword [esp + 0x20], eax
test edi, edi
je 0x48de27
lea ecx, [edi + edi*2]
shl ecx, 2
mov eax, dword [esi + 0x188]
lea ecx, [ecx - 0xc]
mov dword [ecx + eax], 0xffffffff
dec edx
jne 0x48de10
mov eax, dword [esp + 0x20]
xor edx, edx
dec eax
mov dword [esp + 0x20], eax
mov dword [esi + 0x18c], eax
test ebp, ebp
jle 0x48e1d7
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edx*4]
lea ecx, [eax + edx*4]
mov dword [esp + 0x40], ecx
cmp word [edi - 2], 2
jne 0x48e19b
mov eax, dword [esi + 0x1d8]
test eax, eax
je 0x48de6c
push eax
call fcn.0048a290
add esp, 4
mov ebx, eax
jmp 0x48de72
mov ebx, dword [esi + 0x1ec]
xor edx, edx
mov dword [esp + 0x44], 0x70736575
mov eax, edx
mov dword [esp + 0x48], 0x736f6d65
xor eax, 0x646f7261
mov dword [esp + 0x54], 0x6e657261
mov dword [esp + 0x50], eax
mov ecx, ebx
lea eax, [esp + 0x64]
mov dword [esp + 0x58], 0x6c796765
mov dword [esp + 0x6c], eax
xor ecx, 0x6e646f6d
xor eax, eax
mov dword [esp + 0x4c], ecx
push eax
mov word [edi - 2], ax
xor edx, 0x74656462
mov eax, dword [esp + 0x40]
xor ebx, 0x79746573
push edi
add eax, 0x28
mov dword [esp + 0x64], ebx
push eax
push esi
mov dword [esp + 0x70], edx
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
call fcn.0048a950
add esp, 0x10
test eax, eax
je 0x48da2c
mov eax, dword [eax + 4]
test eax, eax
je 0x48da2c
mov ecx, dword [eax + 4]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x48e22e
xor ebx, ebx
cmp dword [ecx + 0x14], ebx
jle 0x48df66
nop
mov eax, dword [ecx + 0x10]
movzx ebp, word [eax + ebx*2]
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x48df50
lea eax, [esi + 0x19c]
push eax
call fcn.0048c620
add esp, 4
test al, al
je 0x48da2c
mov ecx, dword [esp + 0x38]
mov eax, dword [esi + 0x1a8]
inc ebx
mov word [eax], bp
add dword [esi + 0x1a8], 2
cmp ebx, dword [ecx + 0x14]
jl 0x48df20
mov eax, dword [ecx + 0x14]
add eax, eax
push eax
push dword [ecx + 0x10]
lea eax, [esp + 0x4c]
push eax
call fcn.0048d3d0
add esp, 0xc
lea esp, [esp]
mov ax, word [edi]
add edi, 2
cmp ax, 0x3a
jne 0x48df80
xor ecx, ecx
mov eax, edi
cmp word [edi], cx
je 0x48df9f
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x48df95
lea eax, [ecx + ecx]
push eax
lea eax, [esp + 0x48]
push edi
push eax
call fcn.0048d3d0
add esp, 0xc
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x48dfd6
lea eax, [esi + 0x19c]
push eax
call fcn.0048c620
add esp, 4
test al, al
je 0x48da2c
mov ecx, dword [esi + 0x1a8]
movzx eax, word [edi]
mov word [ecx], ax
add dword [esi + 0x1a8], 2
mov eax, dword [esi + 0x1a8]
mov dword [esp + 0x24], eax
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x48dfb1
lea eax, [esp + 0x44]
push eax
call fcn.0048d270
mov edi, dword [esi + 0x188]
mov ecx, eax
mov eax, dword [esp + 0x2c]
add esp, 4
mov ebp, dword [esp + 0x20]
dec eax
mov ebx, eax
mov dword [esp + 0x2c], ecx
and ebx, ecx
mov dword [esp + 0x34], eax
xor dl, dl
lea ecx, [ebx + ebx*2]
shl ecx, 2
cmp dword [ecx + edi], ebp
mov ebp, dword [esp + 0x10]
jne 0x48e0d4
lea ecx, [ecx]
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [edi + ecx + 4]
mov ebp, dword [esp + 0x10]
jne 0x48e08c
mov eax, dword [esi + 0x1ac]
mov edi, dword [edi + ecx + 8]
movzx ecx, word [eax]
cmp cx, word [edi]
jne 0x48e078
sub edi, eax
test cx, cx
je 0x48dcc0
movzx ecx, word [eax + 2]
add eax, 2
cmp cx, word [eax + edi]
je 0x48e062
cmp word [eax], 0
je 0x48dcc0
mov edi, dword [esi + 0x188]
mov eax, dword [esp + 0x34]
test dl, dl
jne 0x48e0aa
movzx ecx, byte [esi + 0x190]
mov edx, eax
not edx
shr eax, 2
and edx, dword [esp + 0x2c]
dec ecx
shr edx, cl
and dl, al
or dl, 1
movzx ecx, dl
cmp ebx, ecx
jge 0x48e0bb
mov eax, dword [esp + 0x28]
sub eax, ecx
add ebx, eax
jmp 0x48e0bd
sub ebx, ecx
mov eax, dword [esp + 0x20]
lea ecx, [ebx + ebx*2]
shl ecx, 2
cmp dword [ecx + edi], eax
mov eax, dword [esp + 0x34]
je 0x48e040
cmp byte [esi + 0xe9], 0
je 0x48e14d
mov ecx, dword [esp + 0x24]
mov ax, word [esi + 0x1d4]
mov word [ecx - 2], ax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov edi, dword [eax]
jmp 0x48e100
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x48e125
lea eax, [esi + 0x19c]
push eax
call fcn.0048c620
add esp, 4
test al, al
je 0x48da2c
mov ecx, dword [esi + 0x1a8]
movzx eax, word [edi]
mov word [ecx], ax
add dword [esi + 0x1a8], 2
mov eax, dword [esi + 0x1a8]
mov dword [esp + 0x24], eax
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x48e100
dec dword [esp + 0x1c]
mov edx, dword [esi + 0x1ac]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x1ac], ecx
lea ecx, [ebx + ebx*2]
mov ebx, dword [esp + 0x20]
mov dword [eax], edx
mov eax, dword [esi + 0x188]
mov dword [eax + ecx*4], ebx
mov eax, dword [esi + 0x188]
mov ebx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], ebx
mov eax, dword [esi + 0x188]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x30]
je 0x48e1b2
mov eax, dword [esp + 0x14]
jmp 0x48e1a1
xor ecx, ecx
mov word [edi - 2], cx
add edx, 2
mov dword [esp + 0x30], edx
cmp edx, ebp
jl 0x48de40
jmp 0x48e1d7
add edx, 2
cmp edx, ebp
jge 0x48e1d7
mov esi, dword [esp + 0x14]
lea ecx, [ecx]
mov eax, dword [esi + edx*4]
xor ecx, ecx
add edx, 2
mov word [eax - 2], cx
cmp edx, ebp
jl 0x48e1c0
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
test ecx, ecx
je 0x48e1f6
mov eax, dword [ecx + 0xc]
xor edx, edx
mov eax, dword [eax]
mov word [eax - 2], dx
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x48e1e4
cmp byte [esi + 0xe8], 0
je 0x48e37e
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x48e23b
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x48e22e
mov ebp, dword [esp + 0x8c]
mov edi, dword [ebp]
nop
mov ax, word [edi]
add edi, 2
cmp ax, 0x3a
jne 0x48e220
jmp 0x48e257
pop edi
pop esi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0x6c
ret
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x9c]
test ebx, ebx
je 0x48e37e
mov ebp, dword [esp + 0x8c]
mov edi, dword [ebp]
xor edx, edx
mov dword [esp + 0x3c], edx
cmp byte [esi + 0xe9], dl
je 0x48e280
mov eax, dword [ebx]
mov ecx, dword [eax]
test ecx, ecx
je 0x48e280
lea ecx, [ecx]
mov ax, word [ecx]
lea ecx, [ecx + 2]
inc edx
test ax, ax
jne 0x48e270
mov dword [esp + 0x3c], edx
mov dword [ebp + 4], edi
mov eax, dword [ebx + 0x14]
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov dword [ebp + 0x14], edx
xor ebp, ebp
mov ax, word [edi + ebp*2]
inc ebp
test ax, ax
jne 0x48e295
mov eax, dword [ebx + 0x14]
add eax, edx
add eax, ebp
cmp eax, dword [ebx + 0x18]
jle 0x48e326
add eax, 0x18
mov dword [esp + 0x40], eax
add eax, eax
push eax
mov eax, dword [esi + 0xc]
call eax
mov ecx, eax
add esp, 4
mov dword [esp + 0x80], ecx
test ecx, ecx
je 0x48da2c
mov eax, dword [esp + 0x40]
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x14]
add eax, eax
push eax
push dword [ebx + 0x10]
push ecx
call sub.MSVCRT.dll_memcpy
mov ecx, dword [esi + 0x168]
add esp, 0xc
test ecx, ecx
je 0x48e311
mov edx, dword [esp + 0x80]
lea esp, [esp]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ebx + 0x10]
jne 0x48e30b
mov dword [ecx + 0xc], edx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x48e300
push dword [ebx + 0x10]
mov eax, dword [esi + 0x14]
call eax
mov eax, dword [esp + 0x84]
add esp, 4
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0x14]
add ebp, ebp
mov eax, dword [ebx + 0x10]
push ebp
push edi
lea eax, [eax + ecx*2]
push eax
mov dword [esp + 0x8c], eax
call sub.MSVCRT.dll_memcpy
mov ecx, dword [esp + 0x48]
add esp, 0xc
test ecx, ecx
je 0x48e372
mov edx, dword [esp + 0x80]
mov ax, word [esi + 0x1d4]
mov word [edx + ebp - 2], ax
lea eax, [ecx + ecx]
push eax
mov eax, dword [ebx]
push dword [eax]
lea eax, [edx + ebp]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x8c]
mov dword [ebx], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret