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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
cmp byte [ebp + 0x1c], 0
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 0x840]
push esi
push edi
mov dword [esp + 0x24], ebx
mov dword [ebx + 0xae8], ecx
mov dword [ebx + 0xaec], edx
jne 0x4b39cb
test al, 2
jne 0x4b39d3
xor eax, eax
push eax
push 0
push 0
push edx
push ecx
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
call fcn.0049eef0
mov ecx, dword [ebx + 0xbc8]
mov eax, dword [ebx + 0xba0]
lea edi, [ebx + 0xba0]
shl ecx, 4
push ecx
mov eax, dword [ecx + eax]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
push eax
push dword [esp + 0x34]
lea eax, [esp + 0x44]
push ecx
push eax
mov ecx, ebx
call fcn.004a0c70
push dword [ebp + 0xc]
mov esi, dword [eax]
push dword [ebp + 8]
mov eax, dword [eax + 4]
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
mov dword [esp + 0x30], esi
push dword [ebp + 0x14]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], eax
mov dword [ebx + 0xaf0], 0
mov byte [ebx + 0xbcc], 0
call fcn.004ad350
test al, al
jne 0x4b4180
mov ecx, dword [ebx + 0xc30]
push esi
lea ecx, [ecx + 0x1e0]
call fcn.004cc260
test eax, eax
jne 0x4b3902
mov eax, dword [ebx + 0xc30]
cmp byte [eax + 0x1f4], 0
je 0x4b3985
push 0x58
lea eax, [esp + 0x58]
push 0
push eax
mov dword [esp + 0x5c], 0
call fcn.00518020
mov eax, dword [ebx + 0xc30]
xor ecx, ecx
cmp byte [ebp + 0x14], cl
mov byte [eax + 0x1f4], 1
mov eax, dword [ebp + 0x18]
setne cl
movzx eax, al
neg eax
sbb eax, eax
and eax, 2
or ecx, eax
mov eax, dword [ebp + 0x1c]
movzx eax, al
neg eax
sbb eax, eax
and eax, 4
or ecx, eax
mov eax, dword [ebx]
mov dword [esp + 0x70], ecx
sub esp, 0x50
mov dword [esp + 0xb8], esi
mov edi, esp
mov ecx, 0x17
lea esi, [esp + 0xac]
mov dword [esp + 0xb4], 0x7e7
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call dword [eax + 0x70]
mov esi, dword [esp + 0x20]
lea edi, [ebx + 0xba0]
push dword [ebp + 0xc]
mov ecx, ebx
push dword [ebp + 8]
call fcn.004b2af0
cmp byte [ebp + 0x18], 0
mov byte [esp + 0x16], al
je 0x4b39dd
test al, al
je 0x4b39dd
mov ecx, ebx
call fcn.004acb90
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0xad4], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0xacc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0xad0], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
test al, 1
je 0x4b384f
mov eax, 1
jmp 0x4b3851
cmp byte [ebp + 0x14], 0
je 0x4b39f3
test al, al
jne 0x4b39f3
push dword [esp + 0xc]
mov ecx, ebx
push esi
call fcn.004a08c0
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebx + 0xad4]
mov edx, dword [ebp + 8]
cmp ecx, eax
mov ecx, dword [ebp + 0xc]
jae 0x4b3e3c
push dword [ebx + 0xad0]
push dword [ebx + 0xacc]
push ecx
push edx
call fcn.004b1b70
add esp, 0x10
test al, al
je 0x4b3e3c
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 0xac]
cmp byte [ebp + 0x18], 0
je 0x4b3a58
cmp byte [ebx + 0x835], 0
je 0x4b3a58
mov eax, dword [ebx + 0xae4]
test eax, eax
je 0x4b3a62
cmp eax, 1
je 0x4b3a62
push 0
push esi
mov ecx, ebx
call fcn.004a09f0
cmp byte [esp + 0x16], 0
mov eax, dword [ebx + 0xae4]
mov byte [esp + 0x17], 0
je 0x4b3aae
cmp eax, 2
jne 0x4b3a85
mov dword [ebx + 0xae4], 3
jmp 0x4b3aee
cmp eax, 3
je 0x4b3aee
cmp dword [ebx + 0x7c0], 0
je 0x4b3aa1
test byte [ebx + 0x830], 1
mov eax, 2
jne 0x4b3aa6
mov eax, 3
mov dword [ebx + 0xae4], eax
jmp 0x4b3aee
test eax, eax
jne 0x4b3ac3
mov dword [ebx + 0xae4], 1
mov byte [esp + 0x17], 1
jmp 0x4b3aee
cmp eax, 1
jne 0x4b3ad4
mov dword [ebx + 0xae4], 3
jmp 0x4b3aee
mov dword [ebx + 0xae4], 0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [ebx + 0xb14], eax
mov eax, dword [ebx + 0xae4]
cmp eax, 1
jne 0x4b3db9
mov ecx, dword [edi + 0x28]
mov esi, dword [ebx + 0xb14]
mov eax, dword [edi]
add ecx, ecx
mov dword [esp + 0x1c], esi
cmp dword [eax + ecx*8], esi
jne 0x4b3b44
push 0
push 1
push 0
push dword [ebp + 0xc]
lea eax, [esp + 0x58]
push dword [ebp + 8]
mov ecx, ebx
push eax
call fcn.0049eef0
push ecx
push 0xffffffffffffffff
push 0
push dword [eax]
lea eax, [esp + 0x50]
push eax
mov ecx, ebx
call fcn.004a0c70
mov esi, dword [eax]
mov dword [esp + 0x1c], esi
mov ecx, dword [edi + 0x28]
mov eax, dword [edi]
add ecx, ecx
mov eax, dword [eax + ecx*8]
cmp eax, dword [ebx + 0xb14]
jl 0x4b3d41
mov ecx, dword [ebx + 0xc30]
push esi
call fcn.004be880
test al, al
jne 0x4b3d41
mov edi, dword [ebx + 0xc30]
inc esi
mov dword [esp + 0xc], esi
test esi, esi
jg 0x4b3b84
xor esi, esi
jmp 0x4b3d0e
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
push ecx
mov dword [esp + 0x1c], ecx
call dword [eax + 8]
cmp esi, eax
jl 0x4b3ba7
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, eax
jmp 0x4b3d0e
lea eax, [esi - 1]
push eax
mov ecx, edi
call fcn.004bee30
test al, al
je 0x4b3bbc
inc esi
jmp 0x4b3d0e
mov eax, dword [edi + 0x1c8]
test eax, eax
je 0x4b3d0e
cmp eax, 0xfde9
jne 0x4b3c14
lea ecx, [edi + 0x10]
push esi
call fcn.004c6b80
movzx eax, al
add eax, 0xffffff80
cmp eax, 0x3f
ja 0x4b3d0e
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
mov ecx, edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], esi
call fcn.004bef80
test al, al
je 0x4b3d0e
mov esi, dword [esp + 0x10]
jmp 0x4b3d0e
push dword [esp + 0xc]
mov esi, dword [edi + 4]
lea eax, [edi + 4]
push eax
call dword [esi + 0x14]
push eax
lea ecx, [edi + 4]
push ecx
call dword [esi + 0x18]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x30], eax
cmp esi, eax
je 0x4b3d0e
jle 0x4b3d0a
lea edx, [esi - 1]
mov dword [esp + 0x18], edx
lea ebx, [edi + 4]
lea ebx, [ebx]
cmp edx, dword [edi + 0x1c]
jge 0x4b3c68
test edx, edx
jns 0x4b3c60
mov byte [esp + 0x10], 0
jmp 0x4b3c83
mov eax, dword [edi + 0x10]
mov al, byte [edx + eax]
jmp 0x4b3c7f
cmp edx, dword [edi + 0x18]
jl 0x4b3c74
mov byte [esp + 0x10], 0
jmp 0x4b3c83
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x10]
add ecx, edx
mov al, byte [ecx + eax]
mov byte [esp + 0x10], al
push dword [esp + 0x10]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x48]
test al, al
je 0x4b3ca1
mov edx, dword [esp + 0x18]
dec esi
dec edx
mov dword [esp + 0x18], edx
cmp esi, dword [esp + 0x30]
jg 0x4b3c50
mov ebx, dword [esp + 0x24]
cmp esi, dword [esp + 0xc]
jge 0x4b3d0a
jmp 0x4b3cb0
cmp esi, dword [edi + 0x1c]
jge 0x4b3cc8
test esi, esi
jns 0x4b3cc0
mov byte [esp + 0x10], 0
jmp 0x4b3ce1
mov eax, dword [edi + 0x10]
mov al, byte [esi + eax]
jmp 0x4b3cdd
cmp esi, dword [edi + 0x18]
jl 0x4b3cd4
mov byte [esp + 0x10], 0
jmp 0x4b3ce1
mov eax, dword [edi + 0x20]
add eax, dword [edi + 0x10]
mov al, byte [eax + esi]
mov byte [esp + 0x10], al
push dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
push ecx
call dword [eax + 0x48]
xor ecx, ecx
test al, al
mov eax, dword [esp + 0xc]
setne cl
inc ecx
lea edx, [ecx + esi]
cmp edx, eax
je 0x4b3d0a
jg 0x4b3d3d
mov esi, edx
cmp esi, eax
jl 0x4b3cb0
mov esi, dword [esp + 0xc]
mov ecx, dword [ebx + 0xc30]
push 0
push 0xffffffffffffffff
push esi
call fcn.004c1300
mov ecx, dword [ebx + 0xc30]
push 0
push 1
push dword [esp + 0x24]
mov esi, eax
call fcn.004c1300
mov ecx, eax
lea edi, [ebx + 0xba0]
jmp 0x4b3d93
add esi, ecx
jmp 0x4b3d0e
mov eax, dword [ebx + 0xc30]
push dword [esp + 0x1c]
mov esi, dword [eax + 4]
add eax, 4
push eax
call dword [esi + 0x14]
push eax
mov eax, dword [ebx + 0xc30]
add eax, 4
push eax
call dword [esi + 0x18]
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jle 0x4b3d91
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebx + 0xc30]
call fcn.004c1300
mov ecx, dword [ebx + 0xc30]
push 0
mov esi, eax
push 1
push esi
call fcn.004c1300
mov ecx, eax
jmp 0x4b3d93
mov esi, ecx
mov dword [ebx + 0xb1c], ecx
mov dword [ebx + 0xb18], esi
mov ecx, dword [edi + 0x28]
mov eax, dword [edi]
add ecx, ecx
mov eax, dword [eax + ecx*8]
push eax
mov ecx, ebx
mov dword [ebx + 0xb20], eax
call fcn.004b3250
jmp 0x4b3df1
cmp eax, 2
je 0x4b3dd8
cmp eax, 3
je 0x4b3dd8
mov ecx, dword [edi + 0x28]
mov eax, dword [edi]
add ecx, ecx
push 0
push dword [eax + ecx*8]
mov ecx, ebx
call fcn.004a09f0
jmp 0x4b3df1
cmp eax, 3
sete al
movzx eax, al
push eax
push esi
push esi
mov ecx, ebx
mov dword [ebx + 0xb10], esi
call fcn.004b2c20
cmp byte [esp + 0x17], 0
je 0x4b410b
push dword [ebp + 0x1c]
mov eax, dword [ebx]
push dword [ebp + 0x18]
mov ecx, ebx
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [eax + 0x78]
mov esi, dword [esp + 0x20]
push esi
mov ecx, ebx
call fcn.004b4190
test al, al
je 0x4b410b
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push esi
call fcn.004ad200
jmp 0x4b410b
cmp byte [esp + 0x16], 0
je 0x4b3f21
cmp byte [ebp + 0x14], 0
mov dword [ebx + 0xbd0], 1
jne 0x4b3e8c
cmp dword [ebx + 0x7c0], 0
mov dword [ebx + 0xb10], esi
je 0x4b3e74
test byte [ebx + 0x830], 1
mov eax, 2
jne 0x4b3e79
mov eax, 3
cmp eax, 3
mov dword [ebx + 0xae4], eax
sete al
movzx eax, al
push eax
push esi
jmp 0x4b3efd
mov edx, dword [edi]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x28]
add eax, eax
add ecx, ecx
mov eax, dword [edx + eax*8 + 8]
cmp eax, dword [edx + ecx*8]
mov eax, dword [edx + ecx*8 + 8]
jle 0x4b3ea6
dec eax
mov ecx, edi
mov dword [ebx + 0xb10], eax
call fcn.004c5460
test al, al
jne 0x4b3ec7
mov eax, dword [ebx + 0xae4]
cmp eax, 2
je 0x4b3ee9
cmp eax, 3
je 0x4b3ee9
cmp dword [ebx + 0x7c0], 0
je 0x4b3ede
test byte [ebx + 0x830], 1
mov eax, 2
jne 0x4b3ee3
mov eax, 3
mov dword [ebx + 0xae4], eax
cmp dword [ebx + 0xae4], 3
sete al
movzx eax, al
push eax
push dword [ebx + 0xb10]
push esi
mov ecx, ebx
call fcn.004b2c20
push 0
push 0xffffffffffffffff
mov ecx, ebx
call fcn.004b23b0
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 0xac]
jmp 0x4b410b
push ecx
push edx
mov ecx, ebx
call fcn.004b41d0
test al, al
je 0x4b3f5f
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push esi
call fcn.004ad270
push 0
push 0
push 1
push dword [ebp + 0xc]
lea eax, [esp + 0x40]
push dword [ebp + 8]
mov ecx, ebx
push eax
call fcn.0049eef0
mov eax, dword [eax]
mov dword [ebx + 0xb08], eax
cmp byte [ebp + 0x14], 0
jne 0x4b3f97
push dword [ebp + 0xc]
mov ecx, ebx
push dword [ebp + 8]
call fcn.004b2930
test al, al
je 0x4b3f8d
mov ecx, ebx
call fcn.004a01d0
test al, al
jne 0x4b3f8d
mov dword [ebx + 0xaf0], 1
jmp 0x4b3f97
mov dword [ebx + 0xaf0], 0
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 0xac]
cmp dword [ebx + 0xaf0], 1
je 0x4b410b
push 0
push 0xffffffffffffffff
mov ecx, ebx
call fcn.004b23b0
cmp byte [ebp + 0x14], 0
jne 0x4b407a
cmp byte [ebp + 0x18], 0
je 0x4b400e
cmp byte [ebx + 0x835], 0
je 0x4b400e
mov ecx, dword [esp + 0xc]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov ecx, edi
call fcn.004c57a0
mov ecx, dword [esp + 0xc]
sub esp, 0x10
mov eax, esp
push 1
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov ecx, ebx
call fcn.004a0550
jmp 0x4b407a
mov ecx, dword [esp + 0xc]
sub esp, 0x10
mov eax, esp
push 1
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov ecx, ebx
call fcn.004a0550
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 4
cmp eax, 1
jbe 0x4b403f
mov ecx, ebx
call fcn.0049fdc0
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 4
cmp eax, 1
ja 0x4b4055
cmp dword [ebx + 0xbd0], 1
je 0x4b405c
mov ecx, edi
call fcn.004c59b0
xor eax, eax
cmp byte [ebp + 0x1c], al
mov ecx, ebx
setne al
inc eax
mov dword [ebx + 0xbd0], eax
mov eax, dword [esp + 0xc]
push eax
push esi
push eax
push esi
call fcn.004a06b0
cmp byte [ebp + 0x14], 0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], edx
je 0x4b40bb
mov eax, dword [edi + 0x30]
cmp eax, 2
je 0x4b40a8
cmp eax, 4
je 0x4b40a8
mov ecx, dword [edi + 0x28]
mov eax, dword [edi]
shl ecx, 4
add eax, 8
add eax, ecx
jmp 0x4b40ae
lea eax, [ebx + 0xbc0]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
xor eax, eax
cmp byte [ebp + 0x1c], al
mov dword [ebx + 0xae4], 0
setne al
inc eax
mov dword [ebx + 0xbd0], eax
mov ecx, dword [edi + 0x28]
mov eax, dword [edi]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [ebx + 0xb14], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0xbb8], esi
mov dword [ebx + 0xbbc], edx
mov dword [ebx + 0xbc0], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov dword [ebx + 0xbc4], eax
call fcn.004a0290
mov eax, dword [ebp + 0x10]
fild dword [ebx + 0x810]
mov dword [ebx + 0xad4], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0xacc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0xad0], eax
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fadd dword [ebp + 8]
call fcn.0052af70
cmp byte [ebx + 0x808], 0
mov dword [ebx + 0xb0c], eax
je 0x4b4170
mov eax, dword [ebx]
push 1
mov ecx, ebx
mov word [ebx + 0xaa4], 0x101
call dword [eax + 0xa4]
mov ecx, ebx
call fcn.004a28b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, ebx
mov word [ebx + 0xaa4], 0
call fcn.004a28b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18