Function at 0x47add0
Capabilities:
Reference http user-agent string

Disassembly:
push 0xffffffffffffffff
push 0x51c518
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, dword [esp + 0x94]
push edi
mov ebp, ecx
lea eax, [esp + 0x14]
push 0
push eax
push esi
lea ecx, [ebp + 0x104]
mov dword [esp + 0x24], ebp
call fcn.00474bf0
test eax, eax
jne 0x47ae2b
mov ecx, dword [esp + 0x9c]
push ecx
push esi
push eax
push 0x93df6c
mov ecx, ebp
call fcn.00478f40
jmp case.default.0x47ae85
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x9c]
lea edx, [esp + 0x1c]
push edx
push 0
push esi
lea ecx, [eax + 0x14]
call fcn.00474620
mov ebx, eax
push esi
mov dword [esp + 0x2c], ebx
call fcn.00474da0
add esp, 4
test eax, eax
je 0x47afd5
lea esi, [ebx + 0x18]
push esi
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
lea esi, [esi + eax + 8]
mov eax, dword [esp + 0xa8]
add esp, 8
cmp eax, 3
ja case.default.0x47ae85
jmp dword [eax*4 + 0x47ba70]
mov edi, dword [esp + 0xa8]
test edi, edi
jne 0x47ae9c
mov edi, 0x95fdd0
add esi, 4
push edi
push esi
call fcn.004fe3e4
add esp, 8
test eax, eax
je case.default.0x47ae85
push edi
call fcn.004ca470
add esp, 4
push eax
push edi
push esi
call fcn.004ca470
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
add esp, 4
sub esi, ebx
push eax
push esi
push ecx
lea ecx, [edx + 0x14]
call fcn.00474730
mov eax, dword [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0047acd0
jmp case.default.0x47ae85
mov ebx, dword [esp + 0xa8]
mov eax, dword [esi]
xor ecx, ecx
mov edx, eax
test ebx, ebx
setne cl
shr edx, 2
and edx, 1
cmp ecx, edx
je case.default.0x47ae85
cmp ecx, 1
jne 0x47af25
or al, 4
mov ecx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0047acd0
jmp case.default.0x47ae85
and al, 0xfb
mov ecx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0047acd0
jmp case.default.0x47ae85
mov ebx, dword [esp + 0xa8]
mov eax, dword [esi]
xor ecx, ecx
mov edx, eax
test ebx, ebx
setne cl
shr edx, 1
and edx, 1
cmp ecx, edx
je case.default.0x47ae85
cmp ecx, 1
jne 0x47af73
or al, 2
mov ecx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0047acd0
jmp case.default.0x47ae85
and al, 0xfd
mov ecx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0047acd0
jmp case.default.0x47ae85
mov eax, dword [esi]
mov ebx, dword [esp + 0xa8]
xor ecx, ecx
mov edx, eax
test ebx, ebx
not edx
setne cl
and edx, 1
cmp ecx, edx
je case.default.0x47ae85
test ecx, ecx
jne 0x47afc0
or al, 1
mov ecx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0047acd0
jmp case.default.0x47ae85
and al, 0xfe
mov ecx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0047acd0
jmp case.default.0x47ae85
mov ecx, dword [ebx]
push 0
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00479240
mov ecx, dword [esp + 0xa0]
lea esi, [ebx + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 0x28]
lea edx, [ecx + ecx*4]
mov edi, esi
push edi
lea ebp, [eax + edx*4]
call fcn.004ca470
add edi, eax
push edi
call fcn.004ca470
add edi, eax
add esp, 8
mov edi, dword [edi]
test edi, edi
mov dword [esp + 0x10], edi
je 0x47b030
mov ecx, edi
mov edx, dword [ecx + 0x1c]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x47b030
mov edi, 1
jmp 0x47b032
xor edi, edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x20], edi
call fcn.00464430
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x90], 0
cmp eax, 8
jge 0x47b62c
cmp eax, 7
ja case.default.0x47b063
jmp dword [eax*4 + 0x47ba80]
mov ebp, dword [esp + 0xa8]
cmp ebp, 0x7f73
jg 0x47b088
cmp ebp, 0xffff808d
jge 0x47b08d
mov ebp, 0xffff808d
jmp 0x47b08d
mov ebp, 0x7f73
push esi
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
lea esi, [esi + eax + 4]
mov eax, dword [esp + 0xa8]
add esp, 8
cmp eax, 1
jne 0x47b0b1
add esi, 4
cmp edi, 1
mov dword [esi], ebp
jne case.default.0x47b063
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x28]
push ecx
mov edx, dword [edi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [edi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.005112cb
mov esi, eax
test esi, esi
je 0x47b0ff
mov ecx, edi
call fcn.00513c42
test eax, 0x80000000
jne 0x47b0ff
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
call fcn.00516296
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov edx, eax
mov esi, ecx
sub edx, edi
sub esi, ebx
cmp dword [esp + 0xa0], 0
jne 0x47b130
mov ebx, ebp
lea ecx, [esi + ebp]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ecx
jmp 0x47b13d
mov edi, ebp
lea eax, [edx + ebp]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], eax
sub eax, edi
push 1
sub ecx, ebx
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push edi
push ebx
call fcn.00513d1a
jmp case.default.0x47b063
mov ebx, dword [esp + 0xa8]
cmp ebx, 0x7f73
jg 0x47b16c
test ebx, ebx
jge 0x47b171
xor ebx, ebx
jmp 0x47b171
mov ebx, 0x7f73
push esi
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
mov ecx, dword [esp + 0xa8]
add esp, 8
cmp ecx, 3
lea eax, [esi + eax + 0xc]
jne 0x47b195
add eax, 4
cmp edi, 1
mov dword [eax], ebx
jne case.default.0x47b063
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x28]
push edx
mov eax, dword [esi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0xa0]
push 0x16
cmp eax, 2
jne 0x47b1df
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
sub ecx, eax
push ecx
push ebx
push 0
push 0
push 0
mov ecx, esi
call fcn.00513d5b
jmp case.default.0x47b063
mov edx, dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x30]
mov ecx, esi
sub edx, ebx
push edx
push 0
push 0
push 0
call fcn.00513d5b
jmp case.default.0x47b063
mov edi, dword [esp + 0xa8]
test edi, edi
jne 0x47b20d
mov edi, 0x95fdd0
push esi
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
lea esi, [esi + eax + 0x1c]
push edi
mov eax, dword [esi]
mov ecx, dword [esi + eax*4 + 4]
lea eax, [esi + eax*4 + 4]
lea esi, [ecx + eax + 4]
call fcn.004ca470
add esp, 0xc
push eax
push edi
push esi
call fcn.004ca470
mov edx, dword [esp + 0x28]
add esp, 4
sub esi, ebx
push eax
mov eax, dword [esp + 0x20]
push esi
push edx
lea ecx, [eax + 0x14]
call fcn.00474730
jmp case.default.0x47b063
mov edx, dword [esp + 0xa8]
xor ecx, ecx
test edx, edx
setne cl
mov ebp, ecx
push esi
cmp ebp, 1
jne 0x47b2a8
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
mov edx, dword [esi + eax + 0x1c]
lea esi, [esi + eax + 0x1c]
mov ecx, dword [esi + edx*4 + 4]
lea eax, [esi + edx*4 + 4]
lea esi, [ecx + eax + 4]
push esi
call fcn.004ca470
mov ecx, dword [eax + esi + 4]
lea eax, [eax + esi + 4]
add esp, 0xc
or ecx, 1
jmp 0x47b2dd
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
mov edx, dword [esi + eax + 0x1c]
lea esi, [esi + eax + 0x1c]
mov ecx, dword [esi + edx*4 + 4]
lea eax, [esi + edx*4 + 4]
lea esi, [eax + ecx + 4]
push esi
call fcn.004ca470
mov ecx, dword [eax + esi + 4]
lea eax, [eax + esi + 4]
add esp, 0xc
and ecx, 0xfffffffe
cmp edi, 1
mov dword [eax], ecx
jne case.default.0x47b063
test ebp, ebp
jne 0x47b2fb
mov ecx, dword [esp + 0x10]
push ebp
call fcn.00513daa
jmp case.default.0x47b063
mov esi, dword [esp + 0x9c]
test esi, esi
je 0x47b481
mov edx, dword [esp + 0x14]
push 0
lea ecx, [edx + 0x14]
call fcn.004745f0
cmp esi, eax
je 0x47b481
mov eax, dword [ebx]
mov ecx, dword [esp + 0x18]
push 0
push eax
call fcn.00479240
test eax, eax
je case.default.0x47b063
mov ecx, dword [eax + 0x14]
test ch, 0x80
jne case.default.0x47b063
mov ebp, 1
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
push 0
mov eax, ecx
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
push eax
add ecx, 0x14
call fcn.004745a0
test eax, eax
je 0x47b468
cmp dword [eax], 0x10015
jne 0x47b34f
lea ebx, [eax + 0x18]
mov esi, ebx
push esi
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
mov edx, dword [esp + 0xa4]
add esi, eax
push edx
lea edi, [esi + 0x1c]
mov esi, dword [esi + 0x1c]
add edi, 4
push esi
push edi
call fcn.00464e10
add esp, 0x14
cmp eax, 0xffffffff
je 0x47b34f
push ebx
call fcn.004ca470
add ebx, eax
push ebx
call fcn.004ca470
add ebx, eax
add esp, 8
mov ebx, dword [ebx]
test ebx, ebx
je 0x47b468
mov eax, dword [ebx + 0x1c]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x47b468
mov ecx, ebx
call fcn.00468bc0
test eax, eax
jge 0x47b3ec
xor eax, eax
jmp 0x47b3f3
mov ecx, ebx
call fcn.00468bc0
mov ebx, dword [esp + 0x9c]
mov ecx, edi
xor ebp, ebp
xor edi, edi
test eax, eax
jle 0x47b42e
mov edx, dword [ecx]
test edx, edx
je 0x47b420
cmp edx, ebx
je 0x47b41b
mov edx, dword [ecx + 4]
add ecx, 4
dec esi
test edx, edx
jne 0x47b40a
jmp 0x47b420
mov edi, 1
add ecx, 4
dec esi
dec eax
test edi, edi
je 0x47b400
jmp 0x47b34f
test edi, edi
jne 0x47b34f
test esi, esi
jle 0x47b34f
mov eax, dword [ecx]
test eax, eax
je 0x47b34f
cmp eax, dword [esp + 0x9c]
je 0x47b45e
dec esi
add ecx, 4
test esi, esi
jg 0x47b43e
jmp 0x47b34f
mov ebp, 1
jmp 0x47b34f
cmp ebp, 1
jne case.default.0x47b063
mov ecx, dword [esp + 0x10]
push 5
call fcn.00513daa
jmp case.default.0x47b063
mov ecx, dword [esp + 0x98]
push 1
push ecx
mov ecx, dword [esp + 0x20]
call fcn.004770b0
jmp case.default.0x47b063
mov ecx, dword [esp + 0xa8]
xor ebx, ebx
test ecx, ecx
setne bl
cmp ebx, 1
push esi
jne 0x47b4e4
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
mov edx, dword [esi + eax + 0x1c]
lea esi, [esi + eax + 0x1c]
mov ecx, dword [esi + edx*4 + 4]
lea eax, [esi + edx*4 + 4]
lea esi, [eax + ecx + 4]
push esi
call fcn.004ca470
mov ecx, dword [eax + esi + 4]
lea eax, [eax + esi + 4]
add esp, 0xc
or ecx, 2
jmp 0x47b519
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
mov edx, dword [esi + eax + 0x1c]
lea esi, [esi + eax + 0x1c]
mov ecx, dword [esi + edx*4 + 4]
lea eax, [esi + edx*4 + 4]
lea esi, [ecx + eax + 4]
push esi
call fcn.004ca470
mov ecx, dword [eax + esi + 4]
lea eax, [eax + esi + 4]
add esp, 0xc
and ecx, 0xfffffffd
cmp edi, 1
mov dword [eax], ecx
jne case.default.0x47b063
mov ecx, dword [esp + 0x10]
xor edx, edx
test ebx, ebx
sete dl
push edx
call fcn.00513dec
jmp case.default.0x47b063
mov ebx, dword [esp + 0xa8]
test ebx, ebx
jne 0x47b549
xor edi, edi
jmp 0x47b58a
add ebx, 8
test ebx, ebx
jne 0x47b554
xor edi, edi
jmp 0x47b58a
mov edi, dword [ebx - 4]
cmp edi, 4
jb 0x47b58a
push edi
push ebx
lea ecx, [esp + 0x40]
mov dword [esp + 0x50], 0
call fcn.00464ba0
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x40]
neg ebx
sbb ebx, ebx
and ebx, ebp
mov eax, dword [ebx]
push eax
call fcn.004825c0
add esp, 4
mov dword [ebx], eax
mov ebp, esi
push ebp
call fcn.004ca470
add ebp, eax
push ebp
call fcn.004ca470
add ebp, eax
add esp, 8
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x47b5ad
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
test edi, edi
jne 0x47b5b5
xor eax, eax
jmp 0x47b5bf
push edi
push ebx
call fcn.00482b40
add esp, 8
push esi
mov dword [ebp + 0x14], eax
call fcn.004ca470
add esi, eax
push esi
call fcn.004ca470
mov ecx, dword [esi + eax + 0x1c]
lea eax, [esi + eax + 0x1c]
add esp, 8
lea eax, [eax + ecx*4 + 4]
push edi
push ebx
mov ecx, dword [eax]
mov dword [eax], edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
sub eax, edi
push ecx
add eax, 4
push eax
mov eax, dword [esp + 0x24]
push edx
lea ecx, [eax + 0x14]
call fcn.00474730
cmp dword [esp + 0x20], 1
jne case.default.0x47b063
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push eax
call dword [sym.imp.USER32.dll_SetCursorPos]
jmp case.default.0x47b063
test edi, edi
jne 0x47b653
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
push ecx
push edx
push edi
mov edi, dword [esp + 0x24]
push 0x93dfe0
mov ecx, edi
call fcn.00478f40
jmp 0x47b657
mov edi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov ax, word [ebp + 0xc]
movsx ecx, ax
add ecx, 0xfffffc18
cmp ecx, 0x18
ja case.default.0x47b67f
xor edx, edx
mov dl, byte [ecx + 0x47bac0]
jmp dword [edx*4 + 0x47baa0]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x28], eax
jmp case.default.0x47b67f
mov eax, dword [esp + 0xa8]
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
mov dword [esp + 0x28], ecx
jmp case.default.0x47b67f
mov eax, dword [esp + 0xa8]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x28], ecx
jmp case.default.0x47b67f
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
jmp case.default.0x47b67f
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x28], ecx
jmp case.default.0x47b67f
mov eax, dword [esp + 0xa8]
test eax, eax
jne 0x47b68d
mov dword [esp + 0x28], 0x95fdd0
jmp case.default.0x47b67f
mov edx, dword [esp + 0xa8]
xor esi, esi
cmp edx, esi
jne 0x47b724
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
jmp case.default.0x47b67f
mov ecx, dword [edx + 4]
cmp ax, 0x3f3
mov dword [esp + 0x2c], ecx
jne 0x47b76c
cmp ecx, 4
jb 0x47b76c
add edx, 8
push ecx
push edx
lea ecx, [esp + 0x40]
mov dword [esp + 0x50], esi
call fcn.00464ba0
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x40]
neg esi
sbb esi, esi
and esi, ebp
mov edx, dword [esi]
push edx
call fcn.004825c0
mov dword [esi], eax
add esp, 4
mov dword [esp + 0x28], esi
jmp case.default.0x47b67f
add edx, 8
mov dword [esp + 0x28], edx
jmp case.default.0x47b67f
mov ebx, dword [esp + 0xa4]
mov ebp, 0x3c
cmp ebx, 0xffffffff
je 0x47b8d2
mov eax, dword [esp + 0x24]
push 6
call dword [eax + 0x2c]
mov edx, dword [esp + 0xa0]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x14]
add edx, 0xfffffff8
push edx
push ecx
call eax
test eax, eax
je 0x47b7c8
cmp dword [esp + 0x2c], ebp
jne 0x47b7c8
mov esi, dword [esp + 0x28]
mov ecx, 0xf
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
jmp 0x47b7dd
lea edx, [esp + 0x4c]
push edx
push ebp
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
cmp ebx, 6
ja case.default.0x47b7e6
jmp dword [ebx*4 + 0x47badc]
mov eax, dword [esp + 0xa8]
mov ecx, 0xe10
cdq
idiv ecx
test edx, edx
jge 0x47b802
add edx, ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edx
jmp case.default.0x47b7e6
mov edx, dword [esp + 0xa8]
neg edx
sbb edx, edx
and edx, 0x2bc
mov dword [esp + 0x5c], edx
jmp case.default.0x47b7e6
mov eax, dword [esp + 0xa8]
test eax, eax
setne al
mov byte [esp + 0x60], al
jmp case.default.0x47b7e6
mov eax, dword [esp + 0xa8]
test eax, eax
setne cl
mov byte [esp + 0x62], cl
jmp case.default.0x47b7e6
mov eax, dword [esp + 0xa8]
test eax, eax
setne dl
mov byte [esp + 0x61], dl
jmp case.default.0x47b7e6
mov eax, dword [esp + 0xa8]
xor ecx, ecx
test eax, eax
setl cl
dec ecx
lea edx, [esp + 0x4c]
and ecx, eax
push ecx
push edx
call fcn.00482e80
add esp, 8
jmp case.default.0x47b7e6
mov edx, dword [esp + 0xa8]
test edx, edx
jne 0x47b89c
mov edx, 0x95fdd0
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x47b8b1
cmp ecx, 0x20
jl 0x47b8b6
mov edx, 0x93df8c
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x68]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, ebx
jmp 0x47b98f
mov esi, dword [esp + 0xa8]
test esi, esi
je case.default.0x47b67f
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x4c]
add esi, 4
rep stosd dword es:[edi], eax
mov eax, dword [esi - 4]
mov ecx, dword [esi]
neg ecx
sbb ecx, ecx
add esi, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov eax, dword [esi]
mov edi, dword [esi + 4]
and ecx, 0x2bc
test eax, eax
setne dl
add esi, 4
mov dword [esp + 0x5c], ecx
test edi, edi
mov ecx, dword [esi + 4]
mov byte [esp + 0x60], dl
setne al
add esi, 4
mov byte [esp + 0x62], al
test ecx, ecx
mov eax, dword [esi + 4]
setne cl
add esi, 4
xor edx, edx
test eax, eax
setl dl
dec edx
mov byte [esp + 0x61], cl
and eax, edx
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00482e80
add esi, 4
add esp, 8
mov esi, dword [esi]
test esi, esi
je 0x47b975
push esi
call fcn.004ca470
add esp, 4
cmp eax, 0x20
jge 0x47b975
lea edx, [esp + 0x68]
mov edi, esi
jmp 0x47b97e
lea edx, [esp + 0x68]
mov edi, 0x93df8c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebp
mov edx, dword [esp + 0x24]
push 4
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x28]
push 0
push edx
mov edx, dword [esp + 0xa8]
mov esi, dword [ecx + 0x1c]
add edx, 0xfffffff8
push edx
push ecx
call eax
cmp eax, 1
jne case.default.0x47b063
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je case.default.0x47b063
mov ecx, dword [esp + 0x14]
push 0
push esi
call fcn.00475480
test eax, eax
mov dword [esp + 0x1c], eax
jle case.default.0x47b063
mov ecx, edi
call fcn.00478620
mov eax, dword [edi + 0x1d4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x98]
inc eax
mov dword [edi + 0x1d4], eax
mov eax, dword [esp + 0x1c]
push eax
push ecx
push edx
mov ecx, edi
call fcn.00478680
mov ecx, edi
call fcn.00478620
mov eax, dword [edi + 0x1d4]
test eax, eax
jle case.default.0x47b063
dec eax
mov dword [edi + 0x1d4], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x90], 0xffffffff
mov dword [esp + 0x38], 0x921d20
call fcn.00464630
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x84
ret 0x18