Function at 0x446f30
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x4e362c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x84], ecx
mov ecx, dword [esi + 0x160]
push 0
push dword [eax]
mov dword [ebp - 0x80], esi
lea edi, [ecx + 0x14]
mov dword [ebp - 0x7c], eax
push edi
push esi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x4c], 0
call fcn.00444cb0
add esp, 0x10
mov dword [ebp - 0x70], eax
test eax, eax
jne 0x446fe5
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
add eax, 0x50
push dword [ecx]
push eax
call fcn.00445c80
add esp, 8
test eax, eax
je 0x447083
push 0x18
push eax
push edi
push esi
call fcn.00444cb0
add esp, 0x10
mov dword [ebp - 0x70], eax
test eax, eax
je 0x447083
cmp byte [esi + 0xe8], 0
je 0x446fe5
push eax
push esi
call fcn.004469b0
add esp, 8
test eax, eax
je 0x447083
mov eax, dword [ebp - 0x70]
push dword [esi + 0x184]
mov eax, dword [eax + 0xc]
push dword [esi + 0x178]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
push ebx
push eax
mov eax, dword [eax + 0x24]
call eax
mov edx, dword [ebp - 0x54]
mov ecx, 0x7fffffff
mov dword [ebp - 0x74], ecx
add esp, 0x10
sub ecx, edx
mov dword [ebp - 0x50], eax
cmp eax, ecx
jg 0x447083
mov edi, dword [esi + 0x178]
lea ecx, [eax + edx]
cmp ecx, edi
jle 0x447099
cmp edx, 0x7fffffef
jg 0x447083
mov eax, 0x7fffffef
sub eax, edx
cmp dword [ebp - 0x50], eax
jg 0x447083
lea eax, [ecx + 0x10]
mov dword [esi + 0x178], eax
cmp eax, 0xfffffff
ja 0x44707d
shl eax, 4
push eax
push dword [esi + 0x184]
mov eax, dword [esi + 0x10]
call eax
add esp, 8
test eax, eax
je 0x44707d
mov ecx, dword [ebp - 0x50]
mov dword [esi + 0x184], eax
cmp ecx, edi
jle 0x44709e
push eax
push ecx
push ebx
mov ebx, dword [ebp - 0x44]
push ebx
mov eax, dword [ebx + 0x24]
call eax
add esp, 0x10
jmp 0x4470a1
mov dword [esi + 0x178], edi
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046d700
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x44]
jmp 0x4470a4
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x50]
mov edx, dword [esi + 0x184]
xor ecx, ecx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x68], ecx
test eax, eax
jle 0x447293
mov dword [ebp - 0x64], ecx
xor edi, edi
nop
mov eax, dword [esi + 0x184]
mov dword [ebp - 0x5c], edi
mov edi, dword [eax + ecx]
mov eax, dword [ebx + 0x1c]
push edi
push ebx
call eax
add eax, edi
push eax
push edi
push ebx
push esi
call fcn.004442e0
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x447083
mov eax, dword [ebx]
cmp byte [eax - 1], 0
jne 0x44725b
mov edi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x48]
mov byte [eax - 1], 1
mov eax, dword [ebx]
mov dword [ecx + edi*4], eax
inc edi
mov eax, dword [esi + 0x184]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x6c], eax
cmp byte [eax + 0xc], 0
jne 0x447189
cmp byte [ebx + 8], 0
mov byte [ebp - 0x58], 1
je 0x44714e
mov edi, dword [ebp - 0x54]
xor ecx, ecx
test edi, edi
jle 0x44714b
mov eax, dword [ebp - 0x70]
mov edx, dword [eax + 0x14]
mov eax, edx
cmp ebx, dword [eax]
je 0x447141
inc ecx
add eax, 0xc
cmp ecx, edi
jl 0x447133
jmp 0x44714b
lea eax, [ecx + ecx*2]
mov al, byte [edx + eax*4 + 4]
mov byte [ebp - 0x58], al
mov edi, dword [ebp - 0x40]
push dword [ebp + 0x1c]
lea eax, [esi + 0x19c]
push eax
mov eax, dword [ebp - 0x6c]
push dword [eax + 8]
push dword [eax + 4]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x58]
push eax
push esi
call fcn.00446ec0
add esp, 0x1c
test eax, eax
jne 0x447088
mov eax, dword [ebp - 0x48]
lea ecx, [eax + edi*4]
mov eax, dword [esi + 0x1ac]
mov dword [ecx], eax
jmp 0x4471e3
push dword [eax + 8]
lea edi, [esi + 0x19c]
push dword [eax + 4]
mov eax, dword [ebp - 0x44]
push eax
push edi
call fcn.00445890
add esp, 0x10
test eax, eax
je 0x447249
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jne 0x4471c3
push edi
call fcn.00445e30
add esp, 4
test al, al
je 0x447249
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x48]
mov byte [eax], 0
inc dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov edi, dword [ebp - 0x40]
mov dword [ecx + edi*4], eax
lea ecx, [ecx + edi*4]
test eax, eax
je 0x447083
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1ac], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x447228
cmp byte [ebx + 9], 0
je 0x44721c
push dword [ebp - 0x84]
push dword [ecx]
push ebx
push eax
push esi
call fcn.00440350
add esp, 0x14
test eax, eax
jne 0x447088
mov edi, dword [ebp - 0x5c]
jmp 0x447229
mov eax, dword [ebx]
inc edi
inc dword [ebp - 0x4c]
mov byte [eax - 1], 2
jmp 0x447229
inc edi
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
inc eax
add ecx, 0x10
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
cmp eax, dword [ebp - 0x50]
jge 0x447290
mov ebx, dword [ebp - 0x44]
jmp 0x4470c0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x48]
mov dword [ecx + eax*4], 0
jmp 0x447083
mov eax, dword [ebp - 0x44]
cmp eax, dword [esi + 0x90]
jne 0x44727a
mov ecx, dword [ebp - 0x68]
mov eax, dword [esi + 0x184]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [esi + 0x11c], eax
pop edi
pop esi
mov eax, 8
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046d700
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x40]
mov dword [esi + 0x17c], ebx
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4472ca
mov ecx, dword [ecx]
cmp byte [ecx - 1], 0
je 0x4472ca
xor eax, eax
test ebx, ebx
jle 0x4472d4
cmp dword [edx + eax*4], ecx
je 0x4472c2
add eax, 2
cmp eax, ebx
jl 0x4472b4
jmp 0x4472d4
mov dword [esi + 0x180], eax
jmp 0x4472d4
mov dword [esi + 0x180], 0xffffffff
xor edi, edi
cmp dword [ebp - 0x54], edi
jle 0x44733f
xor eax, eax
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ecx + 0x14]
add ecx, eax
mov eax, dword [ecx]
mov edx, dword [eax]
cmp byte [edx - 1], 0
jne 0x447330
mov ebx, dword [ecx + 8]
mov dword [ebp - 0x5c], ebx
test ebx, ebx
je 0x44732d
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x44740e
cmp byte [eax + 9], 0
je 0x4473e8
push dword [ebp - 0x84]
push dword [ebp - 0x5c]
push eax
push ebx
push esi
call fcn.00440350
add esp, 0x14
test eax, eax
jne 0x447088
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x58]
inc edi
add eax, 0xc
mov dword [ebp - 0x58], eax
cmp edi, dword [ebp - 0x54]
jl 0x4472e0
mov eax, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0x58], edx
mov dword [eax + ebx*4], 0
cmp dword [ebp - 0x4c], edx
je 0x4477b7
mov bl, byte [esi + 0x190]
mov eax, dword [esi + 0x18c]
mov dword [ebp - 0x44], eax
cmp bl, 0x20
jae 0x447083
mov eax, dword [ebp - 0x4c]
mov edi, 1
movzx ecx, bl
add eax, eax
shl edi, cl
sar eax, cl
mov dword [ebp - 0x68], edi
test eax, eax
je 0x447445
mov esi, dword [ebp - 0x4c]
mov cl, bl
mov eax, esi
sar eax, cl
inc cl
test eax, eax
jne 0x447390
mov esi, dword [ebp - 0x80]
mov byte [esi + 0x190], cl
cmp cl, 3
jae 0x447431
mov byte [esi + 0x190], 3
mov cl, 3
mov edi, 1
shl edi, cl
mov dword [ebp - 0x68], edi
cmp edi, 0x15555555
ja 0x44743a
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
je 0x44743a
mov dword [esi + 0x188], eax
jmp 0x44744c
mov ebx, dword [ebp - 0x40]
inc dword [ebp - 0x4c]
mov byte [edx - 1], 2
mov eax, dword [ecx]
mov edx, dword [ebp - 0x48]
mov eax, dword [eax]
mov dword [edx + ebx*4], eax
mov eax, dword [ecx + 8]
mov dword [edx + ebx*4 + 4], eax
add ebx, 2
mov dword [ebp - 0x40], ebx
jmp 0x447330
mov ebx, dword [ebp - 0x40]
mov byte [edx - 1], 1
mov eax, dword [ecx]
mov edx, dword [ebp - 0x48]
mov eax, dword [eax]
mov dword [edx + ebx*4], eax
mov eax, dword [ecx + 8]
mov dword [edx + ebx*4 + 4], eax
add ebx, 2
mov dword [ebp - 0x40], ebx
jmp 0x447330
cmp cl, 0x20
jb 0x4473b5
mov byte [esi + 0x190], bl
jmp 0x447083
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x44747a
or eax, 0xffffffff
mov edx, edi
mov dword [ebp - 0x44], eax
test edi, edi
je 0x447478
lea ecx, [edi + edi*2]
shl ecx, 2
nop
mov eax, dword [esi + 0x188]
lea ecx, [ecx - 0xc]
mov dword [ecx + eax], 0xffffffff
sub edx, 1
jne 0x447460
mov eax, dword [ebp - 0x44]
xor edx, edx
dec eax
mov dword [ebp - 0x44], eax
mov dword [esi + 0x18c], eax
mov eax, dword [ebp - 0x40]
test eax, eax
jle 0x4477d1
nop
mov ecx, dword [ebp - 0x48]
mov edi, dword [ecx + edx*4]
lea ecx, [ecx + edx*4]
mov dword [ebp - 0x5c], ecx
cmp byte [edi - 1], 2
jne 0x44779d
mov eax, dword [esi + 0x1d8]
test eax, eax
je 0x4474bd
push eax
call fcn.004448c0
add esp, 4
mov ebx, eax
jmp 0x4474c3
mov ebx, dword [esi + 0x1ec]
xor edx, edx
mov dword [ebp - 0x3c], 0x70736575
mov eax, edx
mov dword [ebp - 0x38], 0x736f6d65
xor eax, 0x646f7261
mov dword [ebp - 0x2c], 0x6e657261
mov dword [ebp - 0x30], eax
mov ecx, ebx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x28], 0x6c796765
mov dword [ebp - 0x14], eax
xor ecx, 0x6e646f6d
mov eax, dword [ebp - 0x78]
xor edx, 0x74656462
push 0
push edi
add eax, 0x28
mov dword [ebp - 0x34], ecx
push eax
xorps xmm0, xmm0
mov dword [ebp - 0x20], edx
xor ebx, 0x79746573
movlpd qword [ebp - 0xc], xmm0
push esi
mov dword [ebp - 0x24], ebx
mov byte [edi - 1], 0
call fcn.00444cb0
add esp, 0x10
test eax, eax
je 0x447083
mov eax, dword [eax + 4]
test eax, eax
je 0x447083
mov edx, dword [eax + 4]
mov dword [ebp - 0x6c], edx
test edx, edx
je 0x44780e
mov eax, dword [edx + 0x14]
xor ebx, ebx
test eax, eax
jle 0x4475aa
mov ecx, dword [esi + 0x1a8]
nop dword [eax]
mov eax, dword [edx + 0x10]
mov al, byte [ebx + eax]
mov byte [ebp - 0x5d], al
cmp ecx, dword [esi + 0x1a4]
jne 0x44758b
lea eax, [esi + 0x19c]
push eax
call fcn.00445e30
add esp, 4
test al, al
je 0x447083
mov edx, dword [ebp - 0x6c]
mov eax, dword [esi + 0x1a8]
inc ebx
mov cl, byte [ebp - 0x5d]
mov byte [eax], cl
inc dword [esi + 0x1a8]
mov eax, dword [edx + 0x14]
mov ecx, dword [esi + 0x1a8]
cmp ebx, eax
jl 0x447560
push eax
push dword [edx + 0x10]
lea eax, [ebp - 0x3c]
push eax
call fcn.00446c00
add esp, 0xc
nop word [eax + eax]
mov al, byte [edi]
inc edi
cmp al, 0x3a
jne 0x4475c0
xor eax, eax
cmp byte [edi], al
je 0x4475d7
nop dword [eax]
inc eax
cmp byte [eax + edi], 0
jne 0x4475d0
push eax
lea eax, [ebp - 0x3c]
push edi
push eax
call fcn.00446c00
mov ecx, dword [esi + 0x1a8]
add esp, 0xc
nop dword [eax + eax]
cmp ecx, dword [esi + 0x1a4]
jne 0x44760f
lea eax, [esi + 0x19c]
push eax
call fcn.00445e30
add esp, 4
test al, al
je 0x447083
mov ecx, dword [esi + 0x1a8]
mov al, byte [edi]
mov byte [ecx], al
inc dword [esi + 0x1a8]
mov al, byte [edi]
inc edi
mov ecx, dword [esi + 0x1a8]
test al, al
jne 0x4475f0
lea eax, [ebp - 0x3c]
push eax
call fcn.00446a90
mov ecx, dword [ebp - 0x68]
add esp, 4
mov edx, dword [esi + 0x188]
dec ecx
mov edi, ecx
mov dword [ebp - 0x50], eax
and edi, eax
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x44]
xor bl, bl
mov dword [ebp - 0x64], edi
lea eax, [edi + edi*2]
cmp dword [edx + eax*4], ecx
mov ecx, dword [ebp - 0x54]
jne 0x4476ee
lea eax, [edi + edi*2]
mov edi, dword [ebp - 0x50]
cmp edi, dword [edx + eax*4 + 4]
mov edi, dword [ebp - 0x64]
jne 0x4476a0
mov ecx, dword [esi + 0x1ac]
mov edx, dword [edx + eax*4 + 8]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x447695
sub edx, ecx
test al, al
je 0x44727a
mov al, byte [ecx + 1]
inc ecx
cmp al, byte [edx + ecx]
je 0x447684
test al, al
je 0x44727a
mov ecx, dword [ebp - 0x54]
test bl, bl
jne 0x4476c0
mov eax, dword [ebp - 0x54]
mov ebx, ecx
movzx ecx, byte [esi + 0x190]
not ebx
and ebx, dword [ebp - 0x50]
dec ecx
shr ebx, cl
shr eax, 2
and bl, al
or bl, 1
mov eax, dword [ebp - 0x68]
mov edx, edi
movzx ecx, bl
sub edx, ecx
add eax, edx
cmp edi, ecx
mov ecx, dword [ebp - 0x44]
cmovge eax, edx
mov edx, dword [esi + 0x188]
mov edi, eax
mov dword [ebp - 0x64], edi
lea eax, [edi + edi*2]
cmp dword [edx + eax*4], ecx
mov ecx, dword [ebp - 0x54]
je 0x447663
cmp byte [esi + 0xe9], 0
je 0x447752
mov ecx, dword [esi + 0x1a8]
mov al, byte [esi + 0x1d4]
mov byte [ecx - 1], al
mov eax, dword [ebp - 0x6c]
mov ecx, dword [esi + 0x1a8]
mov eax, dword [eax]
mov edi, dword [eax]
cmp ecx, dword [esi + 0x1a4]
jne 0x447732
lea eax, [esi + 0x19c]
push eax
call fcn.00445e30
add esp, 4
test al, al
je 0x447083
mov ecx, dword [esi + 0x1a8]
mov al, byte [edi]
mov byte [ecx], al
inc dword [esi + 0x1a8]
mov al, byte [edi]
inc edi
mov ecx, dword [esi + 0x1a8]
test al, al
jne 0x447713
mov edi, dword [ebp - 0x64]
sub dword [ebp - 0x4c], 1
lea ecx, [edi + edi*2]
mov edx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x1a8]
mov ebx, dword [ebp - 0x44]
mov dword [esi + 0x1ac], eax
mov eax, dword [ebp - 0x5c]
mov dword [eax], edx
mov eax, dword [esi + 0x188]
mov dword [eax + ecx*4], ebx
mov eax, dword [esi + 0x188]
mov ebx, dword [ebp - 0x50]
mov dword [eax + ecx*4 + 4], ebx
mov eax, dword [esi + 0x188]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x58]
je 0x4477b1
mov eax, dword [ebp - 0x40]
jmp 0x4477a1
mov byte [edi - 1], 0
add edx, 2
mov dword [ebp - 0x58], edx
cmp edx, eax
jl 0x447490
jmp 0x4477d1
mov ebx, dword [ebp - 0x40]
add edx, 2
cmp edx, ebx
jge 0x4477d1
mov esi, dword [ebp - 0x48]
nop
mov eax, dword [esi + edx*4]
add edx, 2
mov byte [eax - 1], 0
cmp edx, ebx
jl 0x4477c0
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax]
test ecx, ecx
je 0x4477f0
nop dword [eax]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
mov byte [eax - 1], 0
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x4477e0
cmp byte [esi + 0xe8], 0
je 0x44796a
mov eax, dword [ebp - 0x70]
mov edi, dword [eax + 4]
test edi, edi
je 0x447839
mov edi, dword [edi + 4]
test edi, edi
jne 0x447824
pop edi
pop esi
mov eax, 0x1b
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046d700
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x7c]
mov ebx, dword [eax]
nop dword [eax]
mov al, byte [ebx]
inc ebx
cmp al, 0x3a
jne 0x447830
jmp 0x44784f
mov eax, dword [ebp - 0x78]
mov edi, dword [eax + 0x9c]
test edi, edi
je 0x44796a
mov eax, dword [ebp - 0x7c]
mov ebx, dword [eax]
xor ecx, ecx
mov dword [ebp - 0x6c], ecx
cmp byte [esi + 0xe9], cl
je 0x44786f
mov eax, dword [edi]
mov edx, dword [eax]
test edx, edx
je 0x44786f
mov al, byte [edx + ecx]
inc ecx
test al, al
jne 0x447864
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x7c]
mov dword [edx + 4], ebx
mov eax, dword [edi + 0x14]
mov dword [edx + 0x10], eax
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [edx + 8], eax
mov dword [edx + 0x14], ecx
xor edx, edx
mov al, byte [ebx + edx]
inc edx
test al, al
jne 0x447887
mov eax, dword [ebp - 0x74]
sub eax, ecx
mov dword [ebp - 0x78], edx
cmp dword [edi + 0x14], eax
jg 0x447083
mov eax, dword [edi + 0x14]
sub dword [ebp - 0x74], eax
sub dword [ebp - 0x74], ecx
cmp edx, dword [ebp - 0x74]
jg 0x447083
add ecx, eax
add ecx, edx
cmp ecx, dword [edi + 0x18]
jle 0x44792b
cmp ecx, 0x7fffffe7
jg 0x447083
lea eax, [ecx + 0x18]
mov dword [ebp - 0x5c], eax
push eax
mov eax, dword [esi + 0xc]
call eax
add esp, 4
mov dword [ebp - 0x80], eax
test eax, eax
je 0x447083
push dword [edi + 0x14]
mov ecx, dword [ebp - 0x5c]
push dword [edi + 0x10]
mov dword [edi + 0x18], ecx
push eax
call fcn.00470170
mov ecx, dword [esi + 0x168]
add esp, 0xc
test ecx, ecx
je 0x447914
mov edx, dword [ebp - 0x80]
mov eax, dword [ecx + 0xc]
cmp eax, dword [edi + 0x10]
jne 0x44790e
mov dword [ecx + 0xc], edx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x447903
push dword [edi + 0x10]
mov eax, dword [esi + 0x14]
call eax
mov eax, dword [ebp - 0x80]
add esp, 4
mov edx, dword [ebp - 0x78]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
push edx
add ecx, eax
push ebx
push ecx
mov dword [ebp - 0x5c], ecx
call fcn.00470170
mov edx, dword [ebp - 0x6c]
add esp, 0xc
test edx, edx
je 0x447962
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x78]
mov al, byte [esi + 0x1d4]
push edx
mov byte [ecx - 1], al
mov eax, dword [edi]
push dword [eax]
push ecx
call fcn.00470170
add esp, 0xc
mov ecx, dword [ebp - 0x7c]
mov eax, dword [edi + 0x10]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046d700
mov esp, ebp
pop ebp
ret