Function at 0x49ffb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4ec86a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x160
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x198]
mov eax, dword [esp + 0x18c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x19c]
push ecx
mov ecx, dword [esp + 0x198]
push edx
mov edx, dword [esp + 0x198]
push ecx
push edx
push 0x4efd50
push 0x4efd50
push eax
mov eax, dword [esp + 0x19c]
push eax
push 0x10
mov ecx, edi
call fcn.0043d880
push 0x51d5ec
mov dword [esp + 0x17c], 0
mov dword [edi], 0x4f9850
mov dword [esp + 0x84], 0x51d5ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [edi + 0x24]
mov ebp, dword [edi + 0x2c]
mov ecx, dword [esp + 0x184]
mov esi, dword [ecx + 0x48]
mov ebx, dword [edi + 0x28]
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x38], eax
add ebp, eax
mov eax, dword [edi + 0x20]
shl esi, 2
mov dword [esp + 0x30], eax
add ebx, eax
mov eax, dword [esp + 0x1b0]
not esi
and eax, 0x10
xor ecx, ecx
and esi, 0x10000
xor edi, edi
or eax, ecx
mov byte [esp + 0x178], 1
mov dword [esp + 0x5c], edx
jne 0x4a0098
mov edi, 0x10000000
mov ecx, dword [esp + 0x1b0]
mov eax, ecx
and eax, 0x8000
xor edx, edx
or eax, edx
je 0x4a00b3
mov eax, 1
jmp 0x4a00b5
xor eax, eax
test al, al
sete al
test al, al
jne 0x4a00c4
or edi, 0x8000000
mov eax, ecx
and eax, 0x40
xor edx, edx
or eax, edx
je 0x4a00d5
or edi, 0x800000
mov edx, dword [esp + 0x1b4]
mov eax, ecx
and eax, 0x80000000
or eax, edx
mov dword [esp + 0x2c], 0
je 0x4a00f7
mov dword [esp + 0x2c], 0x800
mov eax, ecx
and eax, 0x80000
xor edx, edx
mov dword [esp + 0x4c], eax
or eax, edx
jne 0x4a010b
or edi, 8
mov eax, ecx
and eax, 0x2000
xor edx, edx
or edi, 1
or eax, edx
je 0x4a0121
or edi, 0x4000
mov eax, ecx
and eax, 0x1000
xor edx, edx
or eax, edx
je 0x4a0134
or edi, 0x200
and ecx, 0x10000
xor eax, eax
mov dword [esp + 0x3c], ecx
or ecx, eax
je 0x4a0147
or edi, 4
mov eax, dword [esp + 0x4c]
xor ecx, ecx
or eax, ecx
je 0x4a0154
or edi, 4
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x4a015e
or edi, eax
push 0x170
call fcn.004cc845
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov byte [esp + 0x178], 2
je 0x4a0190
mov ecx, dword [esp + 0x24]
add ecx, 0x34
push ecx
mov ecx, eax
call fcn.004ae7d0
mov dword [esp + 0x1c], eax
jmp 0x4a0198
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x188]
mov dword [edx + 0x1c], ecx
mov edx, dword [esp + 0x184]
push eax
mov eax, dword [edx + 0x18]
push eax
mov eax, dword [esp + 0x38]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 4], eax
or edi, esi
mov dword [edx + 8], ebx
or edi, 0x40000000
push edi
mov byte [esp + 0x194], 1
mov dword [edx + 0xc], ebp
call fcn.004ac530
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x18]
push 0
push 0
push 0x101f
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
lea ecx, [esi + 0x48]
call fcn.004ac060
push 2
call fcn.00449130
add esp, 4
test eax, eax
mov dword [esp + 0x2c], eax
je 0x4a021d
mov edx, eax
mov word [edx], 0
mov esi, dword [esp + 0x1a8]
cmp word [esi], 0x3d
mov byte [esp + 0x178], 3
jne 0x4a0282
add esi, 2
mov dword [esp + 0x1a8], esi
mov ecx, esi
je 0x4a0261
mov ax, word [esi]
test ax, ax
je 0x4a0261
cmp ax, 0x3a
je 0x4a025a
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a0248
mov dword [esp + 0x1a8], esi
mov eax, esi
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [esp + 0x34]
call fcn.00449600
cmp word [esi], 0
je 0x4a0282
add esi, 2
mov dword [esp + 0x1a8], esi
mov ecx, dword [esp + 0x184]
call fcn.004a38a0
mov dword [esp + 0x20], eax
xor eax, eax
mov ax, word [esi]
or edi, 0xffffffff
cmp ax, 0x2a
mov dword [esp + 0x14], edi
mov ebx, eax
jne 0x4a02ab
mov word [esi], 0
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x1ac]
push edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
call fcn.0044cd70
add esp, 8
test eax, eax
jle 0x4a02e4
lea eax, [esp + 0x1a8]
push eax
call fcn.00443850
mov edi, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x1a8]
cmp word [esi], 0x3a
jne 0x4a02f4
add esi, 2
test esi, esi
mov eax, esi
mov dword [esp + 0x10], eax
je 0x4a0320
xor ecx, ecx
mov cx, word [esi]
test cx, cx
je 0x4a0320
cmp cx, 0x3a
je 0x4a031c
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4a0308
jmp 0x4a032e
mov dword [esp + 0x10], eax
cmp word [eax], 0
je 0x4a0332
mov word [eax], 0
add eax, 2
mov dword [esp + 0x10], eax
test edi, edi
mov ebp, 0x190
jg 0x4a0346
cmp word [esi], 0
jne 0x4a0346
test bx, bx
je 0x4a03a8
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], edi
xor eax, eax
mov dword [esp + 0xb8], 0
mov ecx, 0x16
lea edi, [esp + 0xbc]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xb8]
push ecx
push 0x5c
push edx
mov dword [esp + 0xd4], ebp
call dword [sym.imp.GDI32.dll_GetObjectW]
push esi
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0xc0]
push ecx
call fcn.0048b720
mov ebx, dword [esp + 0x28]
add esp, 0xc
test eax, eax
mov dword [ebx + 0x40], eax
je 0x4a03ac
mov dword [esp + 0x20], eax
jmp 0x4a03ac
mov ebx, dword [esp + 0x1c]
xor eax, eax
lea edx, [esp + 0xb8]
push edx
mov dword [esp + 0xbc], 0
mov ecx, 0x16
lea edi, [esp + 0xc0]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
push 0x5c
push eax
mov dword [esp + 0xd4], ebp
call dword [sym.imp.GDI32.dll_GetObjectW]
push esi
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xc0]
push edx
call fcn.0048b720
mov dword [ebx + 0xc8], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jle 0x4a040d
mov dword [ebx + 0x140], eax
mov eax, dword [ebx + 0x18]
push 1
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a0435
cmp eax, 0xffffffff
je 0x4a0435
mov ecx, dword [ebx + 0x18]
push 1
push eax
push 0x30
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
fld qword [0x4f7800]
lea edx, [esp + 0x54]
fstp qword [esp + 0x54]
or edi, 0xffffffff
fld qword [0x4f7808]
push edx
lea eax, [esp + 0x14]
fstp qword [esp + 0x50]
push eax
mov ebx, SysReAllocStringLen
mov esi, edi
xor ebp, ebp
mov dword [esp + 0x40], edi
mov dword [esp + 0x38], edi
call fcn.0044cbe0
mov ecx, dword [esp + 0x18]
add esp, 8
cmp word [ecx], bp
je 0x4a05c5
mov edx, ecx
add edx, 2
mov dword [esp + 0x10], edx
push 0x3a
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edi
call fcn.0044ca90
add esp, 0xc
test eax, eax
jle 0x4a04a9
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp word [ecx], 0
je 0x4a05be
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x14]
add ecx, 2
push eax
mov dword [esp + 0x18], ecx
call fcn.0044cbe0
mov ecx, dword [esp + 0x18]
add esp, 8
cmp word [ecx], 0
je 0x4a05be
mov edx, ecx
add edx, 2
mov dword [esp + 0x10], edx
push 0x3a
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call fcn.0044ca90
add esp, 0xc
test eax, eax
jle 0x4a050b
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp word [ecx], 0
je 0x4a05be
mov edx, ecx
add edx, 2
xor eax, eax
mov dword [esp + 0x10], edx
push 0x3a
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0x18]
push eax
call fcn.0044ca90
add esp, 0xc
test eax, eax
jle 0x4a0548
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp word [ecx], 0
je 0x4a05be
mov edx, ecx
add edx, 2
mov dword [esp + 0x10], edx
push 0x3a
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call fcn.0044ca90
add esp, 0xc
test eax, eax
jle 0x4a0583
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x10]
cmp word [edx], 0
je 0x4a05be
mov eax, edx
add eax, 2
mov dword [esp + 0x10], eax
push 0x3a
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call fcn.0044ca90
add esp, 0xc
test eax, eax
jle 0x4a05be
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], edx
test ebx, ebx
movzx edx, bl
jge 0x4a05c9
mov edx, edi
test ebx, ebx
movzx ecx, bh
jge 0x4a0b00
mov ecx, edi
mov eax, edi
fld qword [esp + 0x4c]
mov ebx, dword [esp + 0x1c]
push ecx
fstp dword [esp]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.004ac860
xor eax, eax
mov dword [esp + 0x114], 0
mov ecx, 0x16
lea edi, [esp + 0x118]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x114]
push eax
push 0x5c
push ecx
call dword [sym.imp.GDI32.dll_GetObjectW]
test esi, esi
mov edi, SysReAllocStringLen
mov dword [esp + 0x14], edi
jle 0x4a0630
mov dword [esp + 0x114], esi
test ebp, ebp
jle 0x4a063b
mov dword [esp + 0x118], ebp
mov edx, dword [esp + 0x1b8]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x11c]
push ecx
call fcn.0048b720
mov edx, dword [esp + 0x1bc]
mov dword [ebx + 0xa0], eax
mov eax, edx
and eax, 0x80
xor ecx, ecx
add esp, 0xc
or eax, ecx
je 0x4a0679
or byte [ebx + 0x16d], 4
mov eax, edx
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x4a068d
or byte [ebx + 0x16d], 8
mov eax, edx
and eax, 0x200
xor ecx, ecx
xor esi, esi
or eax, ecx
jne 0x4a06a1
mov esi, 1
mov eax, edx
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x4a06b1
or esi, 4
mov eax, edx
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4a06c1
or esi, 0x10
mov eax, edx
and eax, 0x20000
xor ecx, ecx
or eax, ecx
je 0x4a06d4
or esi, 0x8000
mov edx, dword [ebx + 0x18]
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x1037
push edx
call ebp
or esi, eax
push esi
mov ecx, ebx
call fcn.004ac5a0
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1b0]
xor ecx, ecx
or eax, ecx
je 0x4a071f
mov eax, dword [esp + 0x1b4]
and edx, 0xfff7ffff
mov dword [esp + 0x1b0], edx
mov dword [esp + 0x1b4], eax
mov eax, edx
and eax, 0x4000
xor ecx, ecx
or eax, ecx
je 0x4a0733
or byte [ebx + 0x16d], 1
mov eax, edx
and eax, 0x40000
xor ecx, ecx
or eax, ecx
je 0x4a0747
or byte [ebx + 0x16d], 2
mov eax, edx
and eax, 0x80000
xor ecx, ecx
or eax, ecx
je 0x4a075b
or byte [ebx + 0x16d], 0x20
mov eax, edx
and eax, 0x100000
xor ecx, ecx
or eax, ecx
je 0x4a076f
or byte [ebx + 0x16d], 0x40
mov al, byte [esp + 0x5c]
and al, 1
mov byte [esp + 0x2a], al
je 0x4a0782
or byte [ebx + 0x16d], 2
mov esi, dword [esp + 0x1ac]
lea ecx, [esp + 0x3c]
mov eax, 0xffffffff
push ecx
lea edx, [esp + 0x1b0]
push edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edi
call fcn.0044c9b0
mov eax, dword [esp + 0x44]
add esp, 8
test eax, eax
jl 0x4a07c9
push eax
mov eax, dword [ebx + 0x18]
push 0
push 0x1001
push eax
call ebp
mov eax, dword [esp + 0x40]
test eax, eax
jl 0x4a07e5
mov ecx, dword [ebx + 0x18]
push eax
push 0
push 0x1026
push ecx
mov dword [ebx + 0x150], eax
call ebp
mov eax, dword [esp + 0x44]
test eax, eax
jl 0x4a07fb
push eax
mov ecx, ebx
mov dword [ebx + 0x14c], eax
call fcn.004acae0
mov ecx, dword [esp + 0x48]
cmp ecx, edi
je 0x4a088a
test esi, esi
je 0x4a0825
mov ax, word [esi]
test ax, ax
je 0x4a0825
cmp ax, 0x23
je 0x4a0825
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a0813
cmp word [esi], 0x23
jne 0x4a0884
add esi, 2
je 0x4a084a
mov ax, word [esi]
test ax, ax
je 0x4a084a
cmp ax, 0x23
je 0x4a084a
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a0838
cmp word [esi], 0x23
jne 0x4a0884
add esi, 2
je 0x4a0872
mov ax, word [esi]
test ax, ax
je 0x4a0872
lea ecx, [ecx]
cmp ax, 0x23
je 0x4a0872
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a0860
cmp word [esi], 0x23
jne 0x4a0884
cmp word [esi + 2], 0x2a
jne 0x4a0884
mov ecx, 0xff0000
mov dword [ebx + 0x154], ecx
mov eax, dword [ebx + 0x154]
test eax, eax
jl 0x4a08ad
mov eax, dword [esp + 0x1b0]
and eax, 0x10000
xor ecx, ecx
or eax, ecx
je 0x4a08ad
or byte [ebx + 0x16d], 0x10
mov eax, dword [esp + 0x1a0]
mov ecx, dword [eax]
xor edx, edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x60], 7
cmp word [ecx], dx
mov eax, dword [ebx + 0x154]
sete byte [esp + 0x2b]
test eax, eax
mov dword [esp + 0x10], ecx
jl 0x4a08fc
mov al, byte [ebx + 0x16d]
test al, 0x10
jne 0x4a0906
mov al, byte [ebx + 0x16d]
test al, 0x20
je 0x4a090e
or al, 0x80
mov byte [ebx + 0x16d], al
mov ebp, dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
cmp word [ecx], si
je 0x4a09b0
nop
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x18c], 4
mov byte [esp + 0x34], 0
call fcn.00465ba0
mov ecx, dword [esp + 0x28]
add esp, 0x14
test eax, eax
jge 0x4a0966
test ecx, ecx
jl 0x4a0970
push ecx
push eax
push esi
mov ecx, ebx
call fcn.004ae480
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x64]
push ecx
push esi
mov ecx, ebx
call fcn.004ae460
mov eax, dword [esp + 0x1c]
test eax, eax
mov byte [esp + 0x178], 3
je 0x4a09a1
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push edx
call ebp
mov eax, dword [esp + 0x10]
inc esi
cmp word [eax], 0
jne 0x4a0920
fld qword [esp + 0x54]
mov ecx, dword [esp + 0x24]
fcomp qword [0x4f7808]
mov dword [ecx + 0x40], esi
fnstsw ax
test ah, 0x41
jne 0x4a09d7
fld qword [esp + 0x54]
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.004ac8b0
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x4a09e9
push 0
push eax
mov ecx, ebx
call fcn.004acb00
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4a09f9
push eax
mov ecx, ebx
call fcn.004acac0
mov edx, dword [esp + 0x1a4]
mov ebp, dword [edx]
xor eax, eax
mov ecx, 0xc
lea edi, [esp + 0x88]
rep stosd dword es:[edi], eax
mov dword [esp + 0x88], SysReAllocStringLen
mov dword [esp + 0x84], 1
mov dword [esp + 0x8c], eax
mov dword [esp + 0x98], 0x4efd50
mov ax, word [ebp]
test ax, ax
mov dword [esp + 0x10], ebp
je 0x4a0bef
jmp 0x4a0a50
xor edi, edi
cmp ax, di
mov esi, ebp
je 0x4a0a7c
lea esp, [esp]
cmp ax, 0xd
je 0x4a0a78
cmp ax, 0xa
je 0x4a0a78
mov ax, word [ebp + 2]
add ebp, 2
cmp ax, di
jne 0x4a0a60
mov dword [esp + 0x10], ebp
cmp word [ebp], 0xd
mov eax, ebp
jne 0x4a0a8c
add ebp, 2
mov dword [esp + 0x10], ebp
cmp word [ebp], 0xa
jne 0x4a0a9a
add ebp, 2
mov dword [esp + 0x10], ebp
cmp word [eax], di
je 0x4a0aa2
mov word [eax], di
mov ax, word [esi]
cmp ax, di
mov dword [esp + 0x30], edi
je 0x4a0be2
mov cl, byte [esp + 0x2b]
test cl, cl
jne 0x4a0ac7
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx + 0x40]
jge 0x4a0be2
mov cl, byte [esp + 0x2a]
test cl, cl
mov ebp, esi
je 0x4a0b0b
test ax, ax
je 0x4a0b77
lea ebx, [ebx]
cmp ax, 9
jb 0x4a0aec
cmp ax, 0xd
jbe 0x4a0b69
cmp ax, 0x20
je 0x4a0b69
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a0ae0
jmp 0x4a0b77
sar ebx, 0x10
movzx eax, bl
jmp 0x4a05d6
test ax, ax
je 0x4a0b22
cmp ax, 9
je 0x4a0b69
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a0b10
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x40]
cmp edi, eax
mov dword [esp + 0x8c], edi
jl 0x4a0b49
lea ecx, [eax + 1]
mov dword [edx + 0x40], ecx
push 0
lea ecx, [esp + 0x64]
push ecx
push eax
mov ecx, ebx
call fcn.004ae460
test edi, edi
mov dword [esp + 0x98], ebp
jne 0x4a0ba0
lea edx, [esp + 0x84]
push edx
mov ecx, ebx
call fcn.004ac5d0
mov dword [esp + 0x30], eax
jmp 0x4a0bd1
cmp word [esi], 0
je 0x4a0b77
mov word [esi], 0
add esi, 2
test cl, cl
je 0x4a0b22
test esi, esi
je 0x4a0b22
nop
mov ax, word [esi]
cmp ax, 9
je 0x4a0b9b
cmp ax, 0xb
je 0x4a0b9b
cmp ax, 0xc
je 0x4a0b9b
cmp ax, 0x20
jne 0x4a0b22
add esi, 2
jmp 0x4a0b80
cmp word [ebp], 0
je 0x4a0bd1
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx + 0x18]
lea eax, [esp + 0xb8]
push eax
push ecx
push 0x1074
push edx
mov dword [esp + 0xd0], edi
mov dword [esp + 0xdc], ebp
call dword [sym.imp.USER32.dll_SendMessageW]
mov ax, word [esi]
mov ebp, dword [esp + 0x10]
inc edi
test ax, ax
jne 0x4a0ab2
mov ax, word [ebp]
test ax, ax
jne 0x4a0a50
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b0]
push eax
push ecx
mov ecx, ebx
call fcn.004ac5c0
mov eax, 0x32
mov ecx, eax
movzx edx, cx
mov ecx, dword [ebx + 0x18]
movzx eax, ax
shl edx, 0x10
or edx, eax
push edx
push 1
push 0x100f
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a0c45
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x51d5ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x170]
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x16c
ret 0x40